设计模式原则

单一职责原则

对于一个类而言,应该仅有一个引起它变化的原因。

如果一个类承担的职责过多,等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力,这种耦合会导致脆弱的设计。

开放-封闭原则

开放-封闭原则:软件实体(类、模块、函数)应该是可以扩展的,但是不可以修改。

无论模块多么封闭,都会存在一些无法对之封闭的变化,既然不可能完全封闭,设计人员对于模块应该对哪种变化封闭做出选择。等到变化发生时立即采集行动。

面对需求,对程序的改动应该是通过增加新代码进行,而不是更改现有的代码。

依赖倒转原则

抽象不应该依赖细节,细节应该依赖于抽象。

针对接口编程,不要对实现编程。

高层模块不应该依赖底层模块。

观察者模式-行为型

观察者模式:定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。

发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展。

观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。

查看全文 →

工厂模式之抽象工厂模式-创建型

抽象工厂模式与工厂方法模式最大的区别在于,工厂方法模式针对的是一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构,一个工厂等级结构可以负责多个不同产品等级结构中的产品对象的创建。多个产品等级结构构成了一个产品族。

查看全文 →

单例模式-创建型

单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。

  • 单例类拥有一个私有构造函数,确保用户无法通过 new 关键字直接实例化它。 除此之外,该模式中包含一个静态私有成员变量与公有的方法,该方法负责检验实例的存在性并实例化自己,然后存储在静态成员变量中,以确保只有一个实例被创建。
查看全文 →

工厂模式之工厂方法模式-创建型

在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。

具有完整的产品接口、产品实现、工厂接口、工厂实现。

查看全文 →

工厂模式之简单工厂模式(静态工厂模式)-创建型

在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类(接口)。

具有产品接口、产品实现、工厂实现。没有工厂接口。

简单工厂模式用于生产静态或独立的产品。

查看全文 →