工厂设计模式

来源:互联网 发布:阿里云api接口 编辑:程序博客网 时间:2024/05/29 17:18

工厂设计模式

  • 定义 工厂设计模式定义了一个创建对象的接口,但由于子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类。

好处:尽管只有一个具体创建者,可以将产品的实现从使用中解耦。

可以定义一个默认方法产生某些具体的类,及时创建者没有子类,依然可以创建产品

将创建对象的代码集中在一个对象或方法中,可以避免代码的重复,方便日后维护。

依赖倒置原则 Dependency Inversion Principle

解释 要依赖抽象而不依赖具体类。说明白了,不能让高层组件依赖底层组件,而且,不管高低层组件,都应该依赖于抽象。

原则

  1. 变量不可以持有具体类的引用

  2. 不要让类派生自具体类

  3. 不要覆盖基类中已实现的方法

通过抽象工厂提供的接口,可以创建自己的方法,从实际工厂中解耦,通过传入不同的工厂制作出不同的产品。

  • 抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,并不需要明确的指定具体类。

工厂方法与抽象工厂

在程序中将实现解耦,工厂方法使用继承,抽象工厂使用组合。工厂方法是用来创建对象,由子类来决定具体类型
总而言之,都能讲对象的创建封装起来,使应用程序解耦,降低其对特定实现的依赖,

总结

  • 工厂方法使用继承,把对象的创建委托给子类,子类实现工厂方法来创建对象。
  • 抽象工厂使用对象组合,对象的创建被实现在工厂接口所暴露出来的方法中。
  • 所有的工厂模式都是通过减少程序和具体类之间的依赖进行松耦合
  • 工厂方法允许类的实例化延迟到子类中进行
原创粉丝点击