1 概述 定义 使用共享对象可以有效的支持大量的细粒度的对象。 享元对象的信息分为:内部状态和外部状态 内部状态:内部状态是对象可以共享出来的信息,存储在享元对象内部且不会随环境改变而改变的。 外部状态:外部状态是对象得以依赖的一个标记,是随环境改变而改变的、不可共享的,它是一批对象的统一标识,是唯
1 概述 定义:将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象使用具有一致性。 通用类图如下: component 定义参与组合对象共有的方法和属性,可以定义一些默认行为或属性。 leaf 叶子对象,下面没有分支,遍历中最小单位。 composite 树枝对象,作用
1 概述 定义 当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。 状态模式的核心是封装,状态的变更引起了行为的变更,从外部看起来就好像这个对象对应的类发生了改变一样。通用类图如下: state 抽象状态角色:接口或抽象类,负责对象状态的定义,并且封装环境以实现状态切换。 conc
1 概述 定义 :动态的给一个对象添加一些额外的职责。装饰者就与生成子类来说更为灵活。通用类图如下: Component 一个接口或抽象类,定义最核心的对象。 ConcreateComponent 被装饰的对象。 decorator 装饰者,一般是一个抽象类,里面会有一个变量指向component
1.概述 定义为,用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示的相互作用,从而使其耦合松散,而且可以独立的改变他们之间的交互。通用类图如下: 中介者模式有以下模块组成: Mediator 抽象中介者 ConcreteMediator具体中介者 Colleague同事类
1 概述 责任链模式使多个对象都有机会处理请求,从而避免了请求发送者和接收者之间的耦合关系。这些对象连成一条链,并沿着该链传递请求,直到有对象处理它。 责任链模式的重点是链,用一条链处理相似的请求,并返回结果,通用类图如下: 2 优缺点
1 概述 定义 将一个类的接口变换成客户端期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 当我们正常使用一个接口时,如现在手机二级插口都是type-c,现在有了一个圆头插头的耳机,这肯定不能直接使用。我们需要使用一个转换器(适配器)来把圆头转为type-c的插头。代
1 定义 将抽象和实现解耦,使得两者可以独立地变化。 类图如下: abstraction 抽象化角色,同时保存对一个实现化角色的引用 implementor 实现化角色,接口或抽象类,定义该角色的行为和属性 refinedabstraction 修正抽象化角色 concreteimplementor
1 概述 1.1定义 定义一个操作中的算法的框架,而将一些步骤延伸到子类中。使得子类可以不改变算法结构即可重新定义该算法的某些特定步骤。 类图如下: 模板抽象类中定义基本操作,由子类实现,然后在模板方法中被调用,实现对基本方法