设计模式:工厂模式,解除耦合的利器

  • 时间:
  • 浏览:62
  • 来源:QQ星球网_提供辅助岛技术_270资源网资讯

具体的产品接口和实现类还是复用里边的代码,人们人们人们人们 只需关注工厂土方法 的逻辑即可,

创建4个篮球的类和4个足球的类,并实现该接口,

先创建4个工厂的接口

定义4个接口和实现类,建立4个工厂类那些实现类进行实例的创建。

当然缺点也很明显,倘若工厂类集中了所有实例的创建逻辑,怎么让 增加业务就要多出相应的工厂土方法 ,不仅代码怎么让 变得臃肿,也容易违反GRASPR的高内聚的责任分配原则

举个例子:人们人们人们人们 在编写代码的不要,在4个A类中通过new的土方法 实例化了类B,没人A类和B类之间就所处耦合,怎么让 不要修改了B类的代码和使用土方法 ,之类须要在构造函数中传入参数,没人A类也就须要跟着修改了,4个类的依赖怎么让 影响不大,但若有多个类依赖了B类,没人你你这名工作量怎么让 相当的大,这无疑是件非常痛苦的事。你你这名状态下,人们人们人们人们 须要把创建实例的工作单独分离,与调用方解耦,也倘若使用工厂土方法 创建实例的工作封装起来。从前人们人们人们人们 在须要调用对象的不要就不须要关心那些繁杂的实例化疑问。

这倘若简单工厂模式的基本实现,用关系图来表示倘若:



你你这名模式的优点是代码简单,不能根据具体的参数返回对应的实例对象。

4、工厂模式是典型的解耦框架,高层模块只须要知道产品的抽象类,有些的实现类不是须要关心,符合迪米特法则,符合依赖倒置原则,符合里氏替换原则。

工厂模式着实也称创建模式,是用于创建对象的这名土方法 。本质上倘若用工厂土方法 来代替new实例化对象。

3、屏蔽产品类。产品类的实现怎么变化,调用者不是须要关心,只需关心产品的接口,倘若接口保持不变,系统中的上层模块就不要所处变化。

人们人们人们人们 用球来举例,定义4个基本的接口Ball,和4个抽象土方法 Play (玩),

结果输出:打篮球~~~

又称多态性工厂模式,是对简单工厂模式的改进。工厂模式中,4个子类对应4个工厂类,那些工厂类都实现了4个工厂接口。这大约把4个简单工厂类拆分成多个工厂,从前代码就不要都耦合在同4个类里了。

1、良好的封装性,代码形态学 清晰,调用者只需知道产品的类名即可,不须要知道创建对象的过程,降低代码间的耦合。

参考:

怎么让 ,创建4个工厂类,还还都里能 用于生产篮球怎么让 足球,

测试代码

如上所示,怎么让 须要加在新的产品,如排球,人们人们人们人们 就多写4个工厂类即可,从前就不要把所有的业务都耦合到4个工厂类中了,用关系图表示如下:



最后,总结一下工厂模式的优点吧,

2、扩展性优秀,怎么让 增加4个产品类,只需增加4个对应的工厂类。

怎么让 创建对应业务的工厂类

工厂模式是使用频率很高的这名设计模式,在面试中也老要问到,今天人们人们人们人们 就来学习它。

工厂模式可分为两类:简单工厂模式和工厂模式。

工厂类建好不要,人们人们人们人们 就还还都里能 实例化工厂类,并调用 produce 土方法 来创建对应的实例对象,

输出结果是:

解答你你这名疑问前,人们人们人们人们 先来了解那些是工厂模式。

《设计模式之禅》