Exemplo n.º 1
0
        /// <summary>
        /// Отрисовка фигуры.
        /// Принимает фигуру и цвет как входные параметры.
        /// На типе фигура вызывает метод Draw().
        /// </summary>
        public Bitmap Draw(Figures.IFigure figure, Colors.IColor color)
        {
            Pen pen = new Pen(color.Color, penWidth);

            figure.Draw(pen, graphics, centerX, centerY, figureWidth, figureHeight);
            return(bitmap);
        }
Exemplo n.º 2
0
        /*
         * Este padrão permite a criação de famílias de objetos
         * relacionados ou dependentes por meio de uma única
         * interface e sem que a classe concreta seja especificada
         * É o mais apropriado quando o número e os tipos gerais de
         * objetos de produtos permanecem constantes, e há diferenças
         * em produtos específicos famílias
         *
         * Quando usar:
         *  - o sistema deve ser independente de qual produto será criado e representado
         *  - o sistema deve ser configurado com uma familia de produto multiplo
         *  - uma família de objetos de produtos relacionados é projetada para ser
         *      usada em conjunto e você precisa impor essa restrição
         *  - voce quer prover uma library de produtos e voce quer revelar apenas suas interfaces
         *
         */
        static void Main(string[] args)
        {
            AbstractFactory shapef = FactoryProducer.GetFactory("shape");

            Shapes.IShape circle = shapef.GetShape("circle");
            circle.Draw();

            Shapes.IShape rectangle = shapef.GetShape("rectangle");
            rectangle.Draw();

            AbstractFactory colorf = FactoryProducer.GetFactory("color");

            Colors.IColor blue = colorf.GetColor("blue");
            blue.Fill();


            Console.ReadKey();
        }