温故而知新,每次读设计模式都会有不同的体验,坚持每天一个设计模式,直到熟练运用设计模式。 策略模式定义了很多完成相同工作的算法,但实现不同,它可以以相同的方式调用所有的算法,减少了算法和调用算法的耦合。 以下是大话设计模式的策略类图 ...
策略模式 Strategy Pattern :它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户. 下面是一个商场活动的实现 这几个类的设计如下图: 使用一个策略类CashSuper定义需要的算法的公共接口,定义三个具体策略类:CashNormal,CashRebate,CashReturn,继承于CashSuper,定义一个上下文管理类,接收一个 ...
2017-10-30 11:28 0 4245 推荐指数:
温故而知新,每次读设计模式都会有不同的体验,坚持每天一个设计模式,直到熟练运用设计模式。 策略模式定义了很多完成相同工作的算法,但实现不同,它可以以相同的方式调用所有的算法,减少了算法和调用算法的耦合。 以下是大话设计模式的策略类图 ...
抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的类 下面是一个抽象工厂的demo: 上面类的设计如下图: 优点: 具体工厂类如MysqlFactory在一个应用中只需要初始化一次 ...
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 下面是一个建造者模式的demo 上面类的设计如下图: 指挥者Director 调用建造者Builder的对象 具体的建造过程是在Builder的子类 ...
状态模式(State Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 下面是一个状态模式的demo: 上面类的设计如下图: 应用场景:当控制一个对象的状态转换的条件表达式过于复杂时,把状态的判断逻辑转移到表示不同状态 ...
代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问 上面的类的设计如下图: 代理类Proxy引用代理的实体Pursite,提供与Pursite相同的接口来代替实体 作者:Andy 出处:http ...
组合模式(Composite Pattern):将对象组合成成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性. 下面是一个组合模式的demo: 上面类的设计如下图: 应用场景: 在需要体现部分与整体层次的结构时 希望用户忽略 ...
工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延时到其子类. 上面类的设计如下图: 创建一个抽象工厂类CreateLeiFeng和一个抽象对象类LeiFeng,当创建具体 ...
前言:看这本书的时候我还是个小白,第二次看的时候已经要面临找新工作了,第三次看的时候已经换了心境。用了三次 跨越三年的时间才看完这本书,真该早点看完。 每章小结: 1:简单工厂:计算器 加法、减法、乘法、除法 2:策略模式:商场促销方案 3:单一职责:手机与相机 4:开发-封闭原则 ...