简单工厂模式

这两天无意中下到一本c#的设计模式,比以前那本设计模式要好懂一些,做了一些总结,写一些出来和大家分享一下吧。 
基本结构是一个基础类BaseClassA,几个派生类DeriveClassB, DeriveClassC,DeriveClassD等等,基础类中定义了公共数据和取数据的方法,派生类中定义了构造函数和具体实现,还有一个工厂类FactroyClassA,这个类中定义了如何区别并返回不同的派生类的方法。这就是简单工厂模式的结构。
 
最后,应用程序只应该调用FactroyClassA类中的方法,并且把具体的判断条件给FactroyClassA就可以返回正确的派生类实体。
 
 
比如我们编制这么一个程序,私人支票管理程序,我们有几个不同的银行帐户和资产,当要出的钱大于10000时用一个帐户出款,小于10000时用另外一个帐户出款。
先编写一个基类:BankBase,该类中含有用户信息,姓名和帐号,该基类提供一个方法getmyinfo获取这两个信息
Class BankBase{
Protected name,accounts;
 
String getmyinfo(){return name+accounts}
}
然后编写几个类似以下代码的派生类,来决定具体返回什么值的变量:
Class BankA: BankBase{
BankA(){
name=”abc”;
accounts=”135465864”
}
}
最后编写Factory类,来决定返回哪个具体子类:
public class BankFactory
{
public BankBase GetMyBank(int num)
{
if (num>10000)
       return new ABank();
else
       return new BBank();
              }
}
这样,我们的模型就已经建立完成了,调用的时候只要申请一个BankBase类(bank),一个BankFactory类(bf)。然后调用:
bank=bf.GetMyBank(TheMoney);
就可以返回正确的帐户和姓名了,以后如果有新帐户出来,只要修改一下BankFactory,然后添加一个新帐户的类就可以了。
 
我觉得,简单工厂模式有个特点:
个各类之间的数据最好是同一类或者同一组数据,只是值不同。
有比较好的方法来区别各个类,返回正确的类
这样的情况下才比较适合用简单工厂模式
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值