定义一个工厂类,能够根据输入的不一样返回不一样类的实例。
定义一个用于建立对象的接口,让子类决定实例化哪个类,Factory Method使一个类的实例化延迟到了子类。 典型场景:一、日志记录器;二、数据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化时。
提供一个建立一系列相关或相互依赖对象的接口,而无须指定它们的具体类。 具体应用场景: 一、QQ 换皮肤,一整套一块儿换。 二、生成不一样操做系统的程序。
具体应用场景:Java 中的 StringBuilder。
保证一个类只有一个实例,并提供一个访问它的全局访问点。
用原型实例指定建立对象的种类,而且经过拷贝这些原型来建立新的对象。 具体应用场景:Java 中的 Object clone() 方法。
具体应用场景: 一、美国电器 110V,中国 220V,就要有一个适配器将 110V 转化为 220V。 三、在 LINUX 上运行 WINDOWS 程序。 四、Java 中的 jdbc。
详细信息数据库
具体应用场景:在 Java AWT 和 SWING 中,对于 Button 和 Checkbox 是树叶,Container 是树枝。
具体应用场景:一、Java 中的 String,若是有则返回,若是没有则建立一个字符串保存在字符串缓存池里面。 二、数据库的数据池。
具体应用场景:Java 中的 iterator。
~~~ TODO设计模式
~~~ TODO缓存