迪米特法则
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的互相作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
迪米特法则的思想在于降低类之间的耦合度,减少类之间通信的接口。
外观模式
为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
迪米特原则上拓展出来的模式,为多个接口定义一个高层接口。比如一个简单的例子,买股票要和很多只股票打交道,如果买基金就相当于为买股票提供了一个接口。
建造者模式
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
在父类定好必须完成的功能(虚拟类),这样在创建子类的时候必须得完成这些功能,否则无法通过编译。比如我要做一道菜,那么加盐、加油……就得规定好,向麦当劳一样,而不能少做任何一样,这样就不好吃了。
观察者模式
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化是,会通知所有观察者对象,使它们能够自动更新自己。
将耦合的观察者和通知者(开小差的员工和前台秘书)抽象成两个类,减少二者的耦合度。进一步,将通知者的通知过程设置成委托,委托写在观察者类中。达到的效果就是:观察者不知道谁通知了它,通知者可以多态的通知不同的信息。
抽象工厂模式
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
简单工厂是对一系列产品进行了抽象,工厂是对生成产品的过程进行了抽象,抽象工厂是对生成产品的不同实现形式进行了抽象(我到底在说什么???)
在抽象工厂中,为了不在选择中使用到客户端的代码,可以利用Java的反射机制进行配置,或者写一个配置文件来解决。