[美] Erich Gamma / 机械工业出版社 / 2019年05月01日
《设计模式:可复用面向对象软件的基础》一书由Erich Gamma等作者撰写,是面向对象设计领域的经典之作。本书精选出23个设计模式,这些模式是从众多的设计实践中总结出来的最有价值的经验,并以简洁、可复用的方式呈现。这些设计模式可以帮助开发者更加高效地解决常见的设计问题,提高软件的可维护性和可扩展性。此外,本书还对这些模式进行了分类描述,使得读者可以更好地理解它们的应用场景和实现方式。对于想要提升面向对象设计能力的开发者来说,这本书是一本不可或缺的参考书,它能够帮助你更好地掌握设计模式的精髓,从而编写出更加优秀的代码。
可滚动、双指缩放查看
第一章:引言
1.1 设计模式的概念
定义:设计模式是解决常见软件设计问题的一种优雅的、可复用的解决方案。
目的:提供一种共同的语言,使开发人员能够更有效地交流设计思想。
1.2 设计模式的历史
起源:由建筑师Christopher Alexander提出概念。
在软件中的应用:1990年代由Gamma, Helm, Johnson和Vlissides(四人帮)推广。
第二章:创建型模式
2.1 单例模式
关键点:确保一个类只有一个实例,并提供一个全局访问点。
用途:在需要频繁创建和销毁且数量有限的对象时使用。
2.2 工厂方法模式
关键点:定义一个用于创建对象的接口,让子类决定实例化对象。
用途:在不指定具体类的情况下创建一系列实现同一接口的对象。
2.3 抽象工厂模式
关键点:提供一个创建一系列相关或相互依赖对象的接口。
用途:处理一组相关产品的生产,而不关心具体的类。
建造者模式、原型模式等。
其他创建型模式
第三章:结构型模式
3.1 适配器模式
关键点:允许不兼容的接口协同工作。
用途:复用一个类的接口,同时又不改变现有类的接口。
3.2 组合模式
关键点:将多个对象组合成单个对象来使用。
用途:将对象组合成树形结构来模拟“整体/部分”层次结构。
3.3 代理模式
关键点:为其他对象提供一个代理,以控制对这个对象的访问。
用途:远程代理、虚拟代理等。
桥接模式、装饰模式、外观模式等。
其他结构型模式
第四章:行为型模式
4.1 观察者模式
关键点:当一个对象状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。
用途:事件驱动系统或实现模型/视图结构。
4.2 模板方法模式
关键点:定义算法的框架,而将一些步骤延迟到子类中。
用途:允许子类改变父类算法的某一部分。
4.3 策略模式
关键点:定义一系列算法,将每个算法封装到具有共同接口的独立类中。
用途:运行时改变算法。
责任链模式、命令模式、解释器模式等。
其他行为型模式
第五章:尾声
5.1 设计模式的未来
趋势:设计模式的应用范围不断扩大,新的模式不断出现。
挑战:如何更好地理解和应用设计模式。