标签:工厂模式 相关 模式 低耦合 回顾 strong 抽象工厂 代理模式 模板方法模式
设计模式,是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。每一个设计模式系统地命名、解释和评价了面向对象系统中一个重要的和重复出现的设计。
使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
Christopher Alexander对设计模式这样说:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样你就能一次又一次地使用该方案而不必做重复劳动。”
设计模式四个基本要素:
类和对象的三大特性:
关于特性,就不做赘述了。我们先要了解 接口 这个概念。什么是接口?
接口:一种特殊的类,声明了若干方法,要求继承该接口的类必须实现这些方法。
接口就是一种抽象的基类(父类),限制继承它的类必须实现接口中定义的某些方法。
接口的作用:限制继承接口的类的方法的名称及调用方式;隐藏了类的内部实现。
Python中关于接口的两种写法:
# 写法一: class InterFace(object): def method(self,arg): raise NotImplementedError # 写法二: from abc import abstractmethod,ABCMeta class InterFace(metaclass=ABCMeta): @abstractmethod def method(self,arg): pass
开闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
1、创建型模式:
2、结构型模式:
3、行为型模式:
1、内容:不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例。
2、角色:
3、优点:
4、缺点:
当添加新产品时,需要修改工厂类代码,违反了开闭原则
1、内容:定义一个用于创建对象的接口(工厂接口),让子类决定实例化哪一个产品类。
2、角色:
工厂方法模式相比简单工厂模式将每个具体产品都对应了一个具体工厂。
3、使用场景:
4、优点:
5、缺点:
1、内容:定义一个工厂类接口,让工厂子类来创建一系列相关或相互依赖的对象。
例:生产一部手机,需要手机壳、CPU、操作系统三类对象进行组装,其中每类对象都有不同的种类。对每个具体工厂,分别生产一部手机所需要的三个对象。
2、角色:
相比工厂方法模式,抽象工厂模式中的每个具体工厂都生产一套产品。
3、适用场景:
4、优点:
5、缺点:
难以支持新种类的(抽象)产品
标签:工厂模式 相关 模式 低耦合 回顾 strong 抽象工厂 代理模式 模板方法模式
原文地址:http://www.cnblogs.com/Michael--chen/p/7535104.html