设计模式
stepMoreForever
step more
展开
-
设计模式定义
设计模式策略模式 (Strategy Pattern)策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。观察者模式 (Observer Pattern)观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者会收到通知并自动更新。装饰者模式 (Decorator Pattern)装饰者模式动态地将责任附加到对...原创 2018-11-18 14:34:40 · 263 阅读 · 0 评论 -
装饰者模式简单示例(二)
例子来源:《设计模式之禅》——第17章 装饰者模式装饰者模式的通用类图:Component抽象构件Component是一个接口或者是抽象类,就是定义我们最核心的对象,也就是最原始的对象。ConcreteComponent具体构件ConcreteComponent是最核心、最原始、最基本的接口或抽象类的实现,你要装饰的就是它。Decorator装饰角色一般是一个抽象类,实现接口或者抽...原创 2019-02-21 10:24:54 · 214 阅读 · 0 评论 -
适配器模式代码示例
例子来源:《设计模式之禅》——第19章 适配器模式Target目标角色;Adaptee源角色;Adapter适配器角色。Targetpublic interface Target { void request();}Adapteepublic class Adaptee { public void doSomething(){ System.out....原创 2019-02-25 17:42:14 · 2731 阅读 · 0 评论 -
策略模式示例代码(二)
例子来源:《设计模式之禅》——第18章 策略模式Context封装角色;Strategy抽象策略角色;ConcreteStrateg具体策略角色。Strategypublic interface Strategy { void doSomething();}ConcreteStrategyApublic class ConcreteStrategyA implements ...原创 2019-02-25 15:46:22 · 240 阅读 · 0 评论 -
抽象工厂示例(二)
例子来源:《设计模式之禅》——第9章 抽象工厂方法模式AbstractProductpublic abstract class AbstractProductA { public abstract void doSomething();}public abstract class AbstractProductB { public abstract void doSome...原创 2019-02-23 21:14:27 · 216 阅读 · 0 评论 -
工厂方法模式示例(二)
例子来源:《设计模式之禅》——第8章 工厂方法模式Productpublic abstract class Product { /** * 产品类的公共方法 */ public void method1(){ // 业务逻辑处理 } /** * 抽象方法 */ public abstract vo...原创 2019-02-23 11:17:56 · 146 阅读 · 0 评论 -
单例模式代码示例
饿汉式单例public class Singleton { private static final Singleton singleton = new Singleton(); private Singleton(){ } public static Singleton getSingleton(){ return singleton; ...原创 2019-02-23 09:53:25 · 2786 阅读 · 0 评论 -
六大设计原则
六大设计原则1.单一职责原则(Single Responsibility Principle)定义:应该有且仅有一个原因引起类的变更。单一职责原则的好处:类的复杂性降低,实现什么职责都有清晰明确的定义可读性提高,复杂性降低可维护性提高,可读性提高变更引起的风险降低2.里氏替换原则(Liskov Substitution Principle)定义:1)如果对每一个类型为S的对...原创 2019-02-22 21:54:02 · 9840 阅读 · 0 评论 -
抽象工厂
抽象工厂模式代码实例参考于《HeadFirst设计模式》原材料准备// 芝士public interface Cheese {}// 蛤蜊public interface Clams {}// 面团public interface Dough {}// 酱public interface Sauce {}// 蔬菜public class Veggies {}/...原创 2019-01-22 15:21:05 · 107 阅读 · 0 评论 -
工厂方法模式
工厂方法模式代码实例参考于《HeadFirst设计模式》。工厂(factory)处理创建对象的细节。抽象类public abstract class Pizza { String name; String dough; String sauce; ArrayList toppings = new ArrayList(); void prepare(...原创 2019-01-22 11:28:34 · 110 阅读 · 0 评论 -
装饰者模式简单示例(一)
装饰者模式代码实例参考于《HeadFirst设计模式》。饮料的抽象类public abstract class Beverage { String description = "Unknown beverage"; public String getDescription(){ return description; } // co...原创 2019-01-22 10:48:17 · 639 阅读 · 0 评论 -
策略设计模式简单示例
策略设计模式代码实例参考于《HeadFirst设计模式》。以鸭子的行为为例。接口// 飞行行为的接口public interface FlyBehavior { void fly();}// 叫行为的接口public interface QuackBehavior { void quack();}抽象类public abstract class Duck {...原创 2019-01-22 09:12:20 · 195 阅读 · 0 评论 -
享元模式示例代码
例子来源:《设计模式之禅》——第28章 享元模式Flyweight:抽象享元角色ConcreteFlyweight:具体享元角色unsharedConcreteFlyweight:不可共享的享元角色FlyweightFactory:享元工厂Flyweightpublic abstract class Flyweight { private String intrinsic;...原创 2019-02-26 17:01:20 · 960 阅读 · 0 评论