您的位置:首页 > 财经 > 金融 > 网页设计师在哪里工作_江苏最新消息今天实时_非企户百度推广_网络营销优化

网页设计师在哪里工作_江苏最新消息今天实时_非企户百度推广_网络营销优化

2024/12/23 16:09:50 来源:https://blog.csdn.net/ZSS1753936255/article/details/142682446  浏览:    关键词:网页设计师在哪里工作_江苏最新消息今天实时_非企户百度推广_网络营销优化
网页设计师在哪里工作_江苏最新消息今天实时_非企户百度推广_网络营销优化

 工厂方法模式:

作为抽象工厂模式的孪生兄弟,工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,也就是说工厂方法模式让实例化推迟到子类。

工厂方法模式非常符合“开闭原则”,当需要增加一个新的产品时,我们只需要增加一个具体的产品类和与之对应的具体工厂即可,无须修改原有系统。同时在工厂方法模式中用户只需要知道生产产品的具体工厂即可,无须关系产品的创建过程,甚至连具体的产品类名称都不需要知道。虽然他很好的符合了“开闭原则”,但是由于每新增一个新产品时就需要增加两个类,这样势必会导致系统的复杂度增加

具体的UML类图

 可乐(父工厂)

   --可口可乐(子工厂)

   --百事可乐(子工厂)

 可乐(父产品)

   --可口可乐(子产品)

   --百事可乐(子产品)

 

 由此发现:都是先创建工厂,然后在使用工厂实例获取产品。此时只有一个工厂,那么只能创建一类型的产品。(可口可乐 和百事可乐都是 一类的可乐产品。)如果此时还想创建雪碧类型的产品,那么应该如何解决? 那就需要下文的抽象工厂了。

总结:
工厂父类负责定义创建产品对象的公共方法,所以叫做工厂方法模式。
而工厂子类则负责生成具体的产品对象,即通过不同的工厂子类来创建不同的产品对象。
用户只需要关心其所需产品对应的具体工厂是哪一个即可。
缺点:
当系统中加入新产品时,除了需要提供新的产品类之外,还要提供与其对应的具体工厂类。此时就需要增加两个类。因此系统中类的个数将成对增加,增加了系统的复杂度。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com