摘要:
一. 定义与类型 定义:提供了减少对象数量从而改善应用所需的对象结构的方式,运用共享技术有效地支持大量细粒度的对象 类型:结构性 二. 使用场景 (1) 常常应用于系统底层的开发,以便解决系统的性能问题 (2) 系统有大量相似对象,需要缓冲池的场景 三. 优缺点 优点: (1) 减少对象的创建,降低 阅读全文
摘要:
一. 定义与类型 定义:将一个类的接口转换成客户期望的另一个接口,使原本不兼容的类可以一起工作 类型:结构性 二. 使用场景 (1) 已经存在的类,它的方法和需求不匹配时(方法结果相同或相似) (2) 不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品,不同厂家造成功能类似而接口不相同情况 阅读全文
摘要:
一. 定义与类型 定义:在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象功能) 类型:结构性 二. 使用场景 (1) 扩展一个类的功能或给一个类添加附加职责 (2) 动态的给一个对象添加功能,这些功能可以再动态的撤销 三. 优缺点 优点: (1) 是继承的 阅读全文
摘要:
一. 定义与类型 定义:门面模式,提供一个统一的接口,用来访问子系统中的一群接口,门面模式定义了一个高层接口,让子系统更容易使用 类型:结构性 二. 使用场景 子系统越来越复杂,增加外观模式提供简单调用接口 构建多层系统结构,利用外观对象作为每层的入口,简化层间调用 三. 优缺点 优点:简化了调用过 阅读全文
摘要:
一. 定义与类型 定义:指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。不需要知道任何创建的细节,不调用构造函数 类型:创建型 二.使用场景 类初始化消耗较多资源 new 产生的一个对象需要非常繁琐的过程(数据准备,访问权限等) 构造函数比较复杂 循环体中生产大量对象时 三.优缺点 阅读全文
摘要:
容器单例模式 之前学习Structs2,Spring框架时,经常会听到单例,多例。虽然这与单例模式不太一样,但是都很类似。在程序运行的时候,就加载所有的实例,然后用的时候直接取出 看下面代码: 但是,这种方式在不考虑序列化与反射的情况下,依旧是不安全的。因为在多线程的环境下,还是会产生不同的实例,这 阅读全文
摘要:
破坏单例模式 上一章节,介绍了单例模式的几种方式,这次来学习一波我们创建的单例模式是否安全,能不能破坏。换句话说,也就是在程序运行中,不止有一个实例。 一. 序列化,反序列化破坏 以饿汉式的单例模式为例,先看下面的代码: 上面这段代码的输出结果是 可以看出,产生了两种不同的实例,并输出false。 阅读全文
摘要:
一. 定义与类型 定义:保证一个类仅有一个实例,并提供一个全局访问点 类型:创建型 二. 适用场景 想确保任何情况下都绝对只用一个实例 三. 优缺点 优点: 在内存里只有一个实例,减少了内存开销 可以避免对资源的多重占用 设置全局访问点,严格控制访问 缺点: 没有接口,扩展困难 四. 重点 私有构造 阅读全文
摘要:
一. 定义与类型 定义:将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示 用户只需制定需要建造的类型就可以得到它们,建造过程以及细节不需要知道 类型:创建型 建造者模式与工厂模式比较相近,它们的区别在于, 建造者模式注重方法的调用顺序,工厂模式注重创建产品 它们的创建力度不同 阅读全文
摘要:
一. 定义与类型 定义:抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,无须指定他们具体的类 类型:创建型 二. 适用场景 客户端不依赖于产品类实例如何备创建,实现等细节 创建一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复代码 提供一个产品类的库,所有的产品以同样的接口出 阅读全文