Command
Null object: 在一些程序中,要针对对象是否为null做出判断,根据不同的结果作出不同的处理。但是一旦这样的情况比较多的时候,写出的程序就比较繁琐。这时可以为对象建立一个Null Object, 具有普通对象所有的方法,但是不进行任何操作,这样就可以对所有情况进行统一处理。
Adapter
分为object adapter, class adapter。
Object Adapter: 通过composition的方式,更具有灵活性。
Class Adpater: 通过多重继承的方式,Java不支持,但是可以减少代码量。
Adpater和Facade最大的区别在于两个模式的目的性。Adpater转换接口;Facade提供简洁的接口。
Principle 7: Least knowledge。When you are designing a system, for any object, be careful of the number of classes it interacts with and also how it comes to interact with those classes.
应用这条规则,主要是在调用一个方法时,要考虑这个方法是否属于以下几种对象,如果是,才能调用。
1. 属于对象本身。
2. 属于做为参数传递进来的对象。
3. 属于在本地方法中创建的对象。
4. 属于对象本身所拥有的对象。