设计模式摘要(核心篇)四、工厂模式

白墨曰:创建对象,是极可能变化的过程,把这个过程封装到工厂中。 工厂模式包含: 简单工厂 工厂方法 抽象工厂 (一)简单工厂 简单工厂不是一个设计模式,更像一种编程习惯。 模式应用 场景 一家比萨店,生产各种比萨 应用类图: 参考代码:简单工厂 (二)工厂方法模式 定义:工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 作用 工厂方法用来处理

设计模式摘要(核心篇)三、装饰者模式

定义:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 模式类图 作用 使用对象组合的方式,在运行时装饰类。一旦熟悉了装饰技巧,你将能够在不修改任何底层代码的情况下,给你的(或别人的)对象赋予新的职责。 注意点 每个地方都采用开闭原则,是一种浪费。不仅没必要,还会导致代码变得复杂且难以理解。 虽然我们用到了继承,但是这么做的重点在于,装饰者和被装饰者必须是一样的类型,

设计模式摘要(核心篇)二、观察者模式

定义:在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。 模式类图 作用 帮助对象知悉状况,不会错过该对象感兴趣的事。对象可以在运行时决定是否要继续被通知。观察者模式是 JDK 中使用最多的模式之一,非常有用。 注意点 一对多关系 “一个”主题对应“多个”观察者的关系。主题是真正拥有数据的人,观察者是主题的依赖者,在数据变化时更新,这样比起让许多对象控

设计模式摘要(核心篇)一、策略模式

定义:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 模式类图 作用 用组合替代继承。灵活性强,客户可动态修改使用的算法。 注意点 知道抽象、继承、多态这些概念,并不会马上让你变成好的面向对象设计者。设计大师关心的是建立弹性的设计,可以维护,可以应付变化。 OO原则: 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 模式应用 场景 我们有一

设计模式摘要(核心篇)零、前言

最近在看 《HeadFirst 设计模式》,写文章总结一下。 核心篇关注最常用的模式(即书中精讲的模式),其他模式后面再连载。 本系列文章将遵循此结构: 定义:一句话介绍 模式类图:最重要的,最好背下来 作用:这个模式有什么用 注意点:使用时应该注意些什么 模式应用 应用场景:给出某个应用场景(即书中的场景) 应用类图:此模式在应用场景下的类图 参考代码:github 链接 站长数十年成长感悟,输