Пример #1
0
        public static Figura GetFigura(String nome)
        {
            Figura fig = null;

            figuras.TryGetValue(nome, out fig);

            if (fig == null)
            {
                if (nome.Equals("oval preenchida"))
                {
                    fig = new Oval(true);
                }
                else if (nome.Equals("oval não preenchida"))
                {
                    fig = new Oval(false);
                }
                else if (nome.Equals("linha"))
                {
                    fig = new Linha();
                }

                figuras.Add(nome, fig);
            }

            return(fig);
        }
Пример #2
0
        static void Main(string[] args)
        {
            Figura f = FiguraFactory.GetFigura("linha");

            f.Desenha("amarela");

            f = FiguraFactory.GetFigura("oval não preenchida");
            f.Desenha("vermelha");
            Console.ReadKey();
        }
Пример #3
0
        /*
         * - INTENÇÃO: usar compartilhamento para suportar eficientemente grandes quantidades de objetos de granularidade fina.
         */
        static void Main(string[] args)
        {
            Figura f = FiguraFactory.getFigura("linha");

            f.desenha("branca");

            f = FiguraFactory.getFigura("oval preenchida");
            f.desenha("vermelha");

            f = FiguraFactory.getFigura("oval não preenchida");
            f.desenha("verde");
        }