- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 对象结构型模式——装饰者模式(decorator)
定义: 动态的给对象添加一些额外的职责。就增加功能来说,装饰者模式提供了比继承更加有弹性的另一种方案。 概述: 装饰者模式可以透明的给对象增加功能,并实现功能的组合。被装饰的对象可以已经被装饰过多次,在Java中I/O是装饰者模式的典型代表之一。 实例(Kotlin语言) 被装饰者的抽象类:饮料类 abstract class Beverage { //给一个默认的饮料名 op
2017-10-27 10:42:43 269
原创 对象结构型模式——外观模式(Pacade Pattern)
定义: 提供一个用来访问子系统一群接口的接口,该接口让子系统更容易使用。 概述: 外观模式的目的不是定义一个具有新功能的接口,而是提供一个接口让客户端减少与子系统多个模块的交互,松散耦合,让子系统更加容易使用,但是你也可以不用该接口而直接访问子系统。 实例(Kotlin语言) 模块A的接口以及实现 //接口 interface AModuleApi { fun testA() } //
2017-10-26 15:06:02 380
原创 对象结构型模式——适配器模式(adapter)
定义: 将一个类的接口转换成客户希望的另一个类的接口,适配器模式使原本不兼容的类可以在一起工作。 概述: 主要功能是匹配转换,目的是复用已有的功能。适配器类里面也可以有自己的实现,并且适配器类是用对象的组合的方式来调用适配者中的实现。 实例(Kotlin语言) 以下是Duck接口(对应标准模式中的Target接口) interface Duck { fun quack() fu
2017-10-26 11:25:06 432
原创 对象行为型模式——命令模式(Command)
定义: 将请求封装为对象 概述 命令模式的关键就是把请求封装为命令对象,制定统一的执行操作接口,所有的操作包括存储、转发、记录等都围绕这个对象进行。标准的命令模式会有以下几个类: Command:命令的接口类,声明执行的方法 ConcreteCommand:具体的命令类,实现了Command,并持有接收者Receiver,调用接收者的相关方法来完成命令功能 Receiver:真正执行命令的
2017-10-25 15:24:36 349
原创 对象结构型模式——组合模式(Composite Pattern)
定义 组合模式将对象组合成整体-部分的层次结构,使得整体和部分的处理具有一致性。 概述 组合模式使用一个抽象类,使得叶节点和枝节点能够统一起来,用户可以不再区分就可以对枝和叶做统一处理。 component(抽象组件):为组合的对象声明接口,使用户可以统一的访问和管理组合对象,这里可以实现缺省功能。 leaf(叶节点):定义和实现叶节点的功能 composite(枝节点):定义和实现枝节点
2017-10-24 18:18:34 298
原创 对象行为型模式——迭代器模式(Iterator)
定义: 顺序访问聚合对象中的各个元素,又不暴露对象中的表示 概述 实例(java语言) 迭代接口 public interface Iterator { /** * First.移动到第一个对象位置 */ void first(); /** * Next.移动到下一个位置 */ void next(); /**
2017-10-23 16:46:59 253
原创 类行为型模式——模板方法(TemplateMethod)
定义: 模板方法模式定义了一个算法的步骤,并允许子类为一个或者多个步骤提供实现。 概述 本模式包含一个抽象类及多个实现类,一下分别介绍 抽象类AbstractClass 此类定义了算法的骨架,并确定了其执行顺序,一般是不允许改变的,其抽象方法需要子类去实现 具体类(ConcreteClass) 实现了抽象类的具体类,实现了算法骨架的某些方法。 不得不说的是其钩子操作,可以实现改变类行为
2017-10-20 18:32:11 327
原创 对象行为型模式——观察者模式(Observer Pattern)
定义: 观察者模式定义了对象之间的一对多的依赖关系,当一个主题(Subject)对象的状态发生改变时,他的依赖者(Observer)都会收到通知。 概述 此模式有四个比较重要的类,下面一一说明 主题类(Subject) 可以是抽象类也可以是接口,具体的主题要实现该类 具体主题类(WeatherData) 实现Subject的类 观察者接口类(Observer) 用于通知每个观察者更新
2017-10-20 15:50:34 316
原创 对象行为型模式——状态模式(StatePattern)
定义: 允许一个对象在其内部状态改变时改变其行为 概述 状态模式和策略模式很相似,要注意区分其区别,也有三个(至少三个)比较重要的类 状态类接口(State) 状态模式首先定义一个状态类接口(State),声明其所有的动作 具体状态类(SoldState、SoldOutState、NoQuarterState、HasQuarterState) 每一种状态类都实现State,每种状态对应实
2017-10-19 16:35:18 352
原创 对象行为型模式——策略模式(Strategy Pattern)
定义: 策略模式定义了算法族 ,分别封装起来,让它们之间可以相互替换。此模式让算法的变化独立于使用算法的客户。 概述 此模式又称政策模式(Policy pattern),有三个比较重要的类 抽象策略类(FlyBehavior/QuackBehavior) 抽象策略类可以有一个,也可以有多个,其声明了算法的方法,需要不同的具体算法实现它,它可以是抽象类也可以是接口 具体策略类(FlyNoWa
2017-10-18 17:09:41 370
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人