设计模式(一)之:工厂设计模式(1)

2025-04-22 11:21:09

1、简单工厂模式:指的是由一个工厂对象来决定创建出哪一类产品种类的实例。如下:我们先建立一个接口IFactory,然后再创建一个类A:

设计模式(一)之:工厂设计模式(1)
设计模式(一)之:工厂设计模式(1)

2、这时候如果我们想要创秃赈沙嚣建产品A,那么我们在客户端就需要这么去调用:下图中父类IFactory指向了子类A的引用,应用层需要依赖子类A,假如业务层需要扩展的话,就会有B,C等,而客户端也要完全依赖这些扩展类,久而久之,客户端就会越来越臃肿

设计模式(一)之:工厂设计模式(1)

3、现在我们利用简单工厂模式来创建对象,将创建细节隐藏,这样就可以降低依赖。如下,我们再创建一个类B:

设计模式(一)之:工厂设计模式(1)

4、现在再来创建一个CreateFactory类来生成我们的对象:

设计模式(一)之:工厂设计模式(1)

5、最后在客户端另外写一个main方法,来修改之前的调用逻辑:这时候我们会发现,不管有多少个子类需要创建,客户端都不要要依赖子恽贴淑溪类,我们只需要创建一个正确的参数就可以创建出我们想要的子类,这样客户端的依赖就大大减少

设计模式(一)之:工厂设计模式(1)

6、假如我们现在想要增加一个子类C,那么我们就要修改创建工厂CreateFactory类中的create方法,这样就不符合软件架构设计中的开闭原则,因此我们对简单工厂模式进行优化:

设计模式(一)之:工厂设计模式(1)

7、接下来再修改客户端代码:直接传入类名就可以,而要增加子类C的时候也不需要修改CreateFactory中的方法。

设计模式(一)之:工厂设计模式(1)
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢