设计模式--浅谈工厂方法模式

来源:互联网 发布:灰原哀毛利兰人气知乎 编辑:程序博客网 时间:2024/06/05 20:55

工厂方法模式的优缺点和使用环境:

1.优点:(1)在工厂模式中,工厂方法用来创建客户所需要的产品,同时还向客户隐藏了那种具体产品将被实例化这一细节,用户只需要关心所需产品对应的工厂即可,无需关心创建细节,甚至无需知道具体产品类的类名。

(2)基于工厂角色和产品角色的多态性设计是工厂方法模式的关键,它能让工厂自主确定创建何种产品对象,而如何创建这个对象的细节则完全封装在具体工厂内部。工厂方法模式之所以被称为多态工厂模式,就是因为所有的具体工厂类都具有同一抽象父类。

(3)在系统中加入新的产品时,无需修改抽象工厂和抽象产品提供的接口,无需修改客户端,也无需修改其他的具体工厂和具体产品,主要添加一个具体工厂和具体产品即可,这样,系统的可扩展性非常好,完全符合开闭原则。

2.缺点:(1)添加新产品时,需要编写新的具体产品类,而且要提供与之对应的具体工厂类,系统中类的个数将成对增加,在一定程度上增加了系统的复杂度,,有更多的类需要编译和运行,会给系统带来一些额外的开销。

(2)考虑到系统的可扩展性,需要引入抽象层,在客户端代码中均使用抽象层进行定义,增加了系统的抽象性和理解难度。

3.使用环境:(1)客户端不知道它所需要的对象的类,在工厂方法模式中,客户端不需要知道具体产品类的类名,只需要知道所对应的工厂即可,具体产品对象由具体工厂类创建,可将具体工厂类的类名存储在配置文件或数据库中。

(2)抽象工厂类通过其子类来指定要创建哪个对象,在工厂方法模式中,对于抽象工厂类只需要提供一个创建产品的接口,而由其子类确定具体要创建的对象,利用面向对象的多态性和里氏替换原则,在程序运行时,子类对象将覆盖父类对象,从而使系统更容易扩展。

0 0
原创粉丝点击