Singleton Pattern
针对一些在应用中只会有一个对象存在的类而总结的模式。
令人意想不到的是,它是通过声明该类的构造函数为私有这种方法来实现的。
疑问就是,既然构造函数都成私有了,那怎么来创建这个类的对象呢?
解答就是通过在类中声明一个静态方法,返回这个对象。
典型的写法是
public static Singleton getInstance(){
if(uniqueInstance==null){uniqueInstance = new Singleton();}
return uniqueInstance;
}
这个模式的精髓就这么简单,剩下的就是线程对对象的操作安全,要把这个方法加上synchronized关键字。
Command Pattern
书中是以餐馆点菜作比来讲述这个模式的。
其中的对比概念如下
Customer-------Client
Order------------Command
Waitress--------Invoker
Cook------------Receiver
Take order--------setCommand
orderUp-----------excute
怎么来解释呢?说白了,就是把调用类要达成的操作封装成一个Command对象,就像点菜那张单子一样,当然这个Command要符合一定的规则实现Command接口,里面非常重要的一个方法就是execute。
setCommand方法相当于waitress把菜单递给了厨师,在接收者方面他只管运行execute,具体做什么传过来的command对象都已经设定好了。
Adapter & Façade
适配器模式其实没什么多说的,就是要把传过去的对象要实现接收者支持的格式,那个格式实际上就是一个接口。
而Façade模式是一种衍生物,它的目的是让操作简单化。将一系列不同对象中的操作整合,提供给其它类调用接口书上的例子是家庭影院,要看部电影,要开这个电器,开那个电器,通过Façade模式,将要看电影所必须的动作整合起来,一键搞定。明白了这点,也就理解了这个模式。