摘要:
享元模式中的享指的共享的意思,该模式以共享的方式支持某些对象的重用(特别是一些大的对象)以此节约空间。典型的是以时间换空间的做法。 例如:java语言中String类型就是使用享元模式。对于JVM来说,String对象都是共享的。如果一个系统中两个String对象所包含的字符串内容相同,jvm 实际 阅读全文
摘要:
外观模式也叫门面模式, 它为子系统提供统一入口,封装系统复杂性。如同医院看病,病人需要与挂号,门诊,划价,化验,收费,取药等部门打交道 如同一个子系统客户端和另一个子系统各个类打交道一样,相互耦合处理复杂,如果引入门面模式,在医院增加一个接待员,由接待员复制与上面各个 部门打交道,那么对于病人这个客 阅读全文
摘要:
装饰模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。 装饰模式功能角色: 抽象构建角色(Component):真实对象和装饰对象有相同接口。 具体构建角色(ConcreteComponent):如Io中FileInputStream, 装饰角色(Decorator):持有一个 阅读全文
摘要:
组合模式非java核心中的组合。 组合模式的定义:把部分和整体关系用“树形结构”来表示。从而使客户端可用同一方式处理部分对象或整体对象。 树形结构例子:比如平时的配置文件xml, 文件系统等 核心: 抽象角色:定义了叶子和容器构件的共同点。如文件系统中文件和文件夹的特性。 叶子构建角色(树的叶子): 阅读全文
摘要:
代理模式指某些情况下,一个客户不想或者不能直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 通过代理,控制对对象的访问。 代理模式核心角色: 抽象角色:定义代理角色和真实角色的公共对外方法 真实角色:真正的业务实现 代理角色: 实现抽象角色,通过对真实角色的业务实现方法来实现抽 阅读全文
摘要:
适配器模式类似于电脑上各种转接口(如ps转usb),只要用该转接口连接两端产品,电脑就能适用。 使用情况: 1. 系统需要使用现有的类,但此类的接口不符合系统需要。 2. 想要建立一个可重复使用的类。用于一些彼此间没太大关联的一些类。包括一些可能在将来引进的类一起工作。 适配器模式,把一个类 的接口 阅读全文
摘要:
原型模式类似克隆技术,通过以某个对象为原型,复制出新对象。克隆出的对象属性和原型对象相同。但克隆出的新对象不会改变原来对象。 优势:对象某些创建对象代价高可以使用该模式,效率高。 实现:java语言直接支持原型模式,因为所有java对象继承自Object, 里面由一个clone()方法,可以将一个对 阅读全文
摘要:
一个产品通常由不同的组成成分构成,这些成分构成产品的内部表象。不同的产品有不同的内部表象,也就时不同的成分。 建造者模式使客户端不关注产品的具体成分,只需要关注具体的产品。建造者对象返回给客户端的是一个由零件所构成的完全对象。 场景:建造者模式实现构建和装配的解耦,不同的构建器,相同的装配方法,构建 阅读全文
摘要:
单例模式比较常见,常见于很多场景,比如:Spring容器中默认管理的bean是单例, 数据库的连接池一般也是设计成单例(数据库连接是一种资源),还有windows回收站等等。 优点: 由于只生成一个实例,所以可以减少系统开销。当某个对象的产生需要比较多的资源时,就可以通过在应用启动产生一个单例对象常 阅读全文
摘要:
核心本质:实现了创建者和调用者的分离。将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实 现类解耦。本质是让各个模块分工干活 面向对象设计的基本原则(了解下。。呵呵): OCP(开闭原则,Open-Closed Principle):一个软件的实体应当对扩展开 放,对修改关闭。 DIP(依 阅读全文