独角兽企业重金招聘Python工程师标准>>>
Head First Design Pattern 读书笔记(4) Factory Pattern 工厂模式
##Factory Pattern 类图 ##定义
工厂模式:工厂模式严格意义上不算是设计模式,而是一种编程习惯,将创建某一类“产品”的代码封装起来,达到松耦合的目的。工厂方法模式:定义一个创建对象的接口,但是由子类自己决定创建逻辑。工厂方法让类把实例化延迟到子类。抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确制定具体类。
##几个OO的原测
依赖倒置原测(Dependency Inversion Principle):要依赖于抽象,而不是依赖于具体实现。--》类似与面向接口编程,不管是高层还是底层模块,都应该依赖于抽象。
依赖倒置在编码中的具体实践: 变量不可以持有具体的类引用 --》如使用工厂的方式代替new方式创建对象。不要让类派生自具体类。不要覆盖基类中已实现的方法。
##关于工厂模式
简单工厂与工厂方法的区别:简单工厂仅封装了产品创建代码,如果新增了产品,需要修改工厂类的代码;工厂方法将创建产品的逻辑延迟到子类中去实现,所以可以不修改原有代发动态地拓展新产品。工厂方法与抽象工厂的区别:抽象工厂将产品划分为多个“产品家族”,每一个“族”的产品在一个具体的工厂类中生产;而工厂方法通过继承父类,重写创建逻辑产生特定产品,生产的产品没有类别等级的概念,全部属于统一类产品。抽象工厂的具体工厂类创建产品的代码是很难拓展,如果要在“产品族”中增加新的产品,需要修改工厂类的创建代码。