设计模式之简单工厂模式

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


//功能选择类
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就可以了。简单工厂其实就是利用一个包装类实例化出合适的对象,通过多态,返回父类的方式,实现了功能的结果。


评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值