摘要:
定义一系列算法,把它们一个个封装起来,并且它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 概述 比如,设计一个Army类,该类有一个int数组,数组表示士兵的号码,该类中有一个lineUp()方法,该方法用于将士兵按照号码从小到大排列。但有时候需要将士兵按照从大到小排列,此时要么新增一个 阅读全文
摘要:
装饰模式(别名:包装器):动态的给对象添加一些额外的职责。就功能来说装饰模式相比生成子类更为灵活。 概述 许多时候,我们需要改进某个对象的功能。例如麻雀类的实例能连续飞行100米,如果用麻雀类创建了5个麻雀,想让其中一只飞行150米,在不修改麻雀类的代码前提下,怎么做? 装饰模式是动态地扩展一个对象 阅读全文
摘要:
观察者模式:定义对象之间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都得到通知并自动更新。 概述 观察者模式是关于多个对象想知道一个对象中数据变化情况的一种成熟的模式。模式中有一个“主题”和若干个“观察者”。当主题状态发生变化时,观察者得到通知。 模式的结构 模式的使用 下面 阅读全文
摘要:
创建型 创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。创建型模式主要有简单工厂模式(并不是23种设计模式之一)、工厂方法、抽象工厂模式、单例模式、生成器模式和原型模式。 结构型 用于帮助将多个对象组织成更大的结构。结构型模式主 阅读全文