C# 简单工厂模式

     将对象的创建和使用分离,让用户在使用对象时无须关心对象的创建细节,
从而降低系统的耦合度,让设计方案更易于修改和扩展使用时,客户端无需
知道所要创建对象的类名,只需知道对应参数即可。


如图:要获得水果,只需要通过向水果工厂传递相应的参数即可获得相应的水果对象。


简单工厂模式包含四个角色:工厂角色、抽象产品角色、具体产品角色和客户端。

具体产品类: 将需要创建的各种不同产品对象的相关代码封装到具体产品类中。
抽象产品类: 将具体产品类公共的代码进行抽象和提取后封装在一个抽象产品类中。
工    厂   类: 工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方法,
                     该方法可以根据所传入参数的不同创建不同的具体产品对象。
客    户   端: 只需调用工厂类的工厂方法并传入相应的参数即可得到一个产品对象。

优点:
1、外界与具体类隔离开来,偶合性低。
2、明确区分了各自的职责和权力,有利于整个软件体系结构的优化。 

3、 简单工厂模式能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。
     通过它, 外界可以从直接创建具体产品对 象的尴尬局面中摆脱出来。 
缺点:

1、工厂类集中了所有实例的创建逻辑,容易违反GRASPR的高内聚的责任分配原则 。
2、虽然简单工厂模式能够适应一定的变化,但是它所能解决的问题是远远有限的。

3、创建的类只能是事先教考虑到的,如果需要添加新的类,则就需要改变工厂类了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值