24种设计模式----简单工厂模式---java、c#都合适

声明:本博文仅仅为本人的理解,与看法。如有不对欢迎指出

 

简单工厂模式存在的意义:

可以根据不同的参数,选择想要的同一对象的,分类对象。(老实说感觉没什么存在的意义。是所有工厂模式最底层的一个思想罢了)

举例:
我想开发个图表(char)选择模块,图表分别有柱状图(HistogramChart),折线图(LineChart),饼状图(PieChart)等等。

我选择(ChartFactory)的图表随时会切换的。 然后就使用。

1.首先我想开发一个图表(char)

      interface Chart
    {
       //图表的输血是,显示
        void Display();
    }

2.图表分别有柱状图(HistogramChart)

    public class HistogramChart:Chart
    {
        //初始化的时候显示
        public HistogramChart() {
            Console.WriteLine("创建柱状图");

        }
        public void Display() {
            Console.WriteLine("显示柱状图");
        }
    }

2.图表分别有折线图(LineChart)

  public class LineChart:Chart
    {
        public LineChart() {
            Console.WriteLine("创建折线图");
        }
        public void Display() {
            Console.WriteLine("显示折线图");
        }
    }

3.图表分别有饼状图(PieChart)

    //饼状图
     public  class PieChart:Chart
    {
        public PieChart() {
            Console.WriteLine("创建饼状图");
        }
        public void Display() {
            Console.WriteLine("显示饼状图");
        }
    }

4.我选择(ChartFactory)的图表随时会切换

     class ChartFactory
    {
        //静态工厂
        public static Chart GetChart(string type) {
            Chart chart = null;
            if (type.Equals("histogram"))
            {
                chart = new HistogramChart();
                Console.WriteLine("初始化柱状图");
            }
            else if (type.Equals("pie")) {
                chart = new PieChart();
                Console.WriteLine("初始化饼状图");
            }
            else if (type.Equals("line"))
            {
                chart = new LineChart();
                Console.WriteLine("初始化折线图");
            }
            return chart;
        }
    }

5.使用Mian

        static void Main(string[] args)
        {
            Chart chart;
            //chart 图形具体实现那个,由ChartFactory工厂决定。 "histogram"参数可以写到配置文件中
            chart = ChartFactory.GetChart("histogram");
            //实现对应工厂的,Display方法
            chart.Display();
            chart = ChartFactory.GetChart("pie");
            //实现对应工厂的,Display方法
            chart.Display();
            Console.Read();
        }

全部代码:https://download.csdn.net/download/wangwengrui40/13073669

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值