当前位置: 代码迷 >> C# >> C# 简略工厂模式
  详细解决方案

C# 简略工厂模式

热度:28   发布时间:2016-05-05 03:28:42.0
C# 简单工厂模式

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


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


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

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

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

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

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

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

  相关解决方案