设计模式之简单工厂模式

来源:互联网 发布:网络好歌推荐100首 编辑:程序博客网 时间:2024/05/21 22:58

    所谓简单工厂模式其实就是把一些类进行包装,封装在一起,用到哪一个类的时候在实例化哪一个类。举个简单的例子就像家中的电视机,电视机上面有很多按钮,其中有菜单,有调节屏幕明亮程度的,有调节音量大小的。这些每一个按钮都会完成一个功能,而将这些封装起来的就是电视机,利用函数,通过参数的不同而返回不同的实例化对象。用代码表示则如下:

//功能选择类ClassFunctionChoice{Public virtual void GetResult(){String result=“…...”;Return result;}}//菜单类Class Menu:FunctionChoice{Public override void GetResult(){Return Console.writeline(“输出菜单”);}}//加大音量类Class AddVoice:FunctionChoice{Public override void GetResult(){Return console.writeline(“加大音量”);}}//减小音量类Class SubVoice:FunctionChoice{Public override void GetResult(){Return Console.writeline(“减小音量”);}}//电视机类,相当于一个工厂Class TV{//通过参数的不同实例化不同的对象Public static FunctionChoicecreateFunctionChoice(string operate){FunctionChoice oper=null;Swich (operate){Case “菜单”:Oper=new Menu();Break;Case "加大音量":Oper=new AddVoice();Break;Case "减小音量":Oper=new SubVoice();Break;}Return oper;}}

在主程序中,如果我想加大音量,则如下:

FunctionChoice oper ;oper=TV.createFunctionChoice(“加大音量”);oper.GetResult();

    

   如果想增加其他的类,如上下换台类,则只需要增加其子类,然后在电视机工厂中增加case就可以了。简单工厂其实就是利用一个包装类实例化出合适的对象,通过多态,返回父类的方式,实现了功能的结果。


2 0
原创粉丝点击