首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

设计模式---行为模式

设计模式中的行为模式 结构型模式 行为模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化。...行为模式不仅仅关注类和对象的结构,而且重点关注它们之间的相互作用。 通过行为模式,可以更加清晰地划分类与对象的职责,并研究系统在运行时实例对象 之间的交互。...行为模式分为类行为模式和对象行为模式两种: 类行为模式:类的行为模式使用继承关系在几个类之间分配行为,类行为模式主要通过多态等方式来分配父类与子类的职责。...对象行为模式:对象的行为模式则使用对象的聚合关联关系来分配行为,对象行为模式主要是通过对象关联等方式来分配两个或多个类的职责。...根据“合成复用原则”,系统中要尽量使用关联关系来取代继承关系,因此大部分行为型设计模式都属于对象行为型设计模式

61410

行为模式:状态模式

十一大行为模式之八:状态模式。...当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。 (来自《设计模式之禅》) 你要的故事 现在有好多个人贷款软件,比如:支付宝、360借条(打广告。。。)等等。...看起来有点繁琐,扩展性不高,假设新增了一个状态,那么注册、授信、借款这 3 种行为的代码都要修改。下面通过状态模式来解决这个问题。...我们把状态给抽出来,作为一个接口,因为在每种状态中都可能有注册、授信、借款行为,所以把这 3 个行为作为状态接口的方法,让每个状态子类都实现相应的行为控制。如下代码所示。...而每个状态都有 3 种行为,它们各自对这些行为进行权限控制。

53330

行为模式:策略模式

十一大行为模式之五:策略模式。...上面代码就是完整的策略模式示例,是不是感觉有些问题,这 4 种洗衣类型对象完全暴露给了用户,这也是策略模式的缺点。...往往策略模式不会单独使用,会和其他设计模式一起使用,比如和简单工厂模式一起使用就可以解决这个对外暴露对象的问题,看下面代码。...https://github.com/1CSH1/DesignPatterns/blob/master/src/com/liebrother/designpatterns/strategy/ 总结 策略模式是一个很好的封装各种复杂处理的设计模式...这其中也是一个见招拆招的问题,设计模式在真正运用中也是这样子的,遇到问题使用恰当的设计模式去解决问题。 参考资料:《大话设计模式》、《设计模式之禅》

36330

漫谈模式行为模式小结

时间很快,不知不觉漫谈模式系列已经将设计模式-行为型篇写完。本文主要来简单回顾一下之前写的一些内容。迭代器器模式介绍意图提供一种方法顺序访问一个聚合对象中各个元素,而不是暴露该对象的内部表示。...中介者在各同事间适当地转发请求以实现写作行为。详见:漫谈模式之中介者模式状态模式的基本介绍意图允许一个对象在其内部状态改变的时候改变它的行为。对象看起来似乎修改了它的类。...详见:漫谈模式之模版方法模式访问者模式的基本介绍意图访问者模式是对象的行为模式,其表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。...策略模式 vs 解释器模式策略模式的目的是在运行时根据需要选择不同的算法或行为,而解释器模式的目的是根据特定语言的规则解释和执行语句。...策略模式状态模式将一群行为封装到状态类中,主类的当前状态在状态集合中游走,随着时间的流逝,主类的行为不断变化,但这对客户端而言完全是透明的,而策略模式需要客户端明确所有策略,以指明一个具体的策略。

31630

设计模式 | 行为型 | 状态模式

状态模式(State) 状态模式(State) 介绍 状态模式是一种行为设计模式 状态模式能在一个对象的内部状态变化时改变其行为,使其看上去就像改变了自身所属的类一样。...适用场景 对象需要根据当前状态进行不同行为,同时状态的数量非常多且与状态相关的代码会频繁变更。 某个类需要根据成员变量的当前值改变自身行为,从而需要使用大量的条件语句。...缺点: 复杂度增加:如果状态机只有很少的几个状态,使用状态模式会很复杂。 与其他模式的关系 状态可被视为策略的扩展 策略模式中的策略则几乎完全不知道其他策略的存在。...状态模式中,特定状态知道其他所有状态的存在,且能触发从一个状态到另一个状态的转换。 实现方式 声明状态接口。 为每个实际状态创建一个继承状态接口的类。...如果状态类中不包含成员变量,则可以使用单例模式来配合使用。 其他实现方法: 分支逻辑法:直接利用 if 逻辑或者 switch 分支逻辑,直接写状态转移的代码。适合简单直接的状态机。

23810

设计模式分类:行为模式

行为模式 行为模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化。行为模式不仅仅关注类和对象的结构,而且重点关注它们之间的相互作用。...根据其意图或目的,行为模式可以分为两大类: 类行为模式(Class Behavioral Pattern):类的行为模式使用继承关系在几个类之间分配行为,类行为模式主要通过多态等方式来分配父类与子类的职责...对象行为模式(Object Behavioral Pattern):对象的行为模式则使用对象的聚合关联关系来分配行为,对象行为模式主要是通过对象关联等方式来分配两个或多个类的职责。...根据“合成复用原则”,系统中要尽量使用关联关系来取代继承关系,因此大部分行为型设计模式都属于对象行为型设计模式。 下面我们来看看每一类中包含哪些具体的设计模式,并举一些简单的例子来说明它们的作用。...对象行为模式 对象行为模式包括以下九种: 策略模式(Strategy Pattern):定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的改变不会影响使用算法的客户。

16420

设计模式行为模式集合

行为模式是对不同对象之间划分责任和算法的抽象化。行为对象模式使用对象复合而不是继承。再来回顾一下各个行为模式的意图和结构。 1....中介者在各同事间适当地转发请求以实现写作行为。 详见《中介者模式浅析》 6. 备忘录模式的基本介绍 意图 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。...状态模式的基本介绍 意图 允许一个对象在其内部状态改变的时候改变它的行为。对象看起来似乎修改了它的类。 结构 状态模式的基本结构如下: ?...详见《模板方法模式浅析》 11. 访问者模式的基本介绍 意图 访问者模式是对象的行为模式,其表示一个作用于某对象结构中的各元素的操作。...》 不知不觉,已经将中行为模式都写了一遍了,有兴趣的朋友可以一起研读、交流。

77930

设计模式行为模式

行为模式 一、设计模式总分类 创建型模式( 5种 ) 结构型模式( 7种 ) 行为模式( 11种 ) 二、责任链模式 作用 应用背景 演示代码 三、迭代器模式 作用 应用背景 演示代码 四、中介者模式...作用 应用背景 演示代码 十、状态模式 作用 应用背景 演示代码 十一、观察者模式 作用 应用背景 演示代码 十二、备忘录模式 作用 应用背景 演示代码 十三、行为模式汇总 一、设计模式总分类 创建型模式...适配器模式 代理模式 桥接模式 装饰模式 组合模式 外观模式 享元模式 行为模式( 11种 ) 关注对象之间的行为交互 .研究在系统运行时对象之间的相互通信和协作 ,进一步明确对象职责...十三、行为模式汇总 模式分类 作用 职责链模式 避免请求发送者和接收者耦合,让多个对象都有可能接收请求,将这些对象连成一条链,并且沿着这条链传递请求,直到有对象处理为止 命令模式 将一个请求封装为一个对象...备忘录模式 捕获一个对象的内部状态,并保存之;需要时,可以恢复到保存的状态 观察者模式 当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新 状态模式 允许一个对象在其内部状态改变时改变它的行为

33430
领券