前言 设计模式有很多,但设计模式的目的是一致的,都是为了提升代码的可读性和可扩展性。设计模式都遵循一些基本的原则,设计模式是为了遵循这些原则而创造的工具。 - 单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。这一点是说,如果有一些类过于臃肿,承担了过多的职责,就应当分解他。 - 开放-封闭 ...
分类:
其他好文 时间:
2019-04-07 14:28:58
阅读次数:
263
行为型模式 行为型模式关注的是各个类之间的相互作用,将职责划分清楚,使得我们的代码更加地清晰。 策略模式太常用了,所以把它放到最前面进行介绍。它比较简单,我就不废话,直接用代码说事吧。 下面设计的场景是,我们需要画一个图形,可选的策略就是用红色笔来画,还是绿色笔来画,或者蓝色笔来画。 首先,先定义一 ...
分类:
编程语言 时间:
2019-04-06 17:11:43
阅读次数:
162
模式: 行为型模式 在策略模式中,我们常见各种策略对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象执行算法。 策略模式主要是用来封装一组互相替换的算法,可以根据 需要 动态地替换 Context 使用的算法。 ? 代码实现 ...
分类:
其他好文 时间:
2019-04-06 12:39:18
阅读次数:
124
我觉得策略模式就像公司的饮水机 出水口只有一个,当你按热水时出热水,当你按冷水时出冷水,虽然出水口都是一个,但是你点击了不同的策略,就得到了不同的结果. 如何实现: 一个接口,多个实现类(就是策略类),一个调用者 接口: ...
分类:
其他好文 时间:
2019-03-25 23:26:38
阅读次数:
174
策略模式,将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,达到承上启下的作用。使用策略模式,能够极大地简化代码使其更优雅、更易于维护,降低了类与类之间的耦合。 eg:假如有一个电商网站系统,针对男性女性用户要各自跳转到不同的商品类目,并且所有的广告位展示不同的广告。在传统的代码中,都是在 ...
分类:
其他好文 时间:
2019-03-25 20:41:57
阅读次数:
195
策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,不同的收入要按的税率是不一样的。 简单截取一个类图 首先是一个基础版的demo 这样我们便实现了标准版的策略模式,但是这样的程序在我们的策略类少的情况下或许还可以,策略类多的时 ...
分类:
其他好文 时间:
2019-03-23 22:27:15
阅读次数:
187
创建模式 单件模式、工厂模式、抽象工厂模式、生成器模式、原型模式。 结构模式 适配器模式、桥接模式、组成模式、装饰模式、外观模式、享元模式、代理模式。 行为模式 中介者模式、命令模式、备忘录模式、状态模式、策略模式、解释器模式、迭代器模式、观察者模式、访问者模式、模板方法模式。 第一类 单件模式(S ...
分类:
其他好文 时间:
2019-03-21 10:24:02
阅读次数:
189
目的:提高代码的复用性,拓展性,降低代码间的耦合度。 示例:就以鸭子举例 1.将类之间的共性定义在父类之中。 鸭子都会游泳 2.将子类一定有的功能(不同子类实现方式不一样)写成抽象方法在父类中。 不同鸭子颜色不一样 3.将子类不一定有的方法单独写成接口。 比如不是所有鸭子都会飞(比喻不太恰当,理解含 ...
分类:
其他好文 时间:
2019-03-21 01:16:30
阅读次数:
172
参考:《大话设计模式》 策略模式(Strategy): 它定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户环境角色(Context):持有一个Strategy对象的引用抽象策略角色(Strategy):一般为抽象类和接口,给出所有的具体策略具体策略角 ...
分类:
其他好文 时间:
2019-03-17 21:26:46
阅读次数:
162
策略模式其思想就是把一系列的算法封装到具有相同接口的独立的类中,从而使他们可以相互替换。而其最大的特点是使得算法可以在不影响客户端的情况下发生改变,从而 实现不同的功能。 举个例子: Java的工具类TreeSet,这个类实现了一个Comparator接口(这个接口里面是个空壳,只是一个形式而已), ...
分类:
其他好文 时间:
2019-03-15 09:15:08
阅读次数:
170