文章来源:极手游作者:小狐狸发布时间:2022-11-18 10:06:28
"不考虑变化的设计在未来可能会面临重大的重新设计风险.":埃里希伽马
在面向对象设计中,模式是常见问题的典型解决方案。当一个解决方案在各种项目中一次又一次出现时,最终会有人给它命名,并详细描述。这是发现模式的方法。
模式就像预制的蓝图,我们可以定制它来解决代码中反复出现的问题。模式不是一段特定的代码,而是解决特定问题的一般思想或概念。我们可以遵循模式细节并实现适合程序的解决方案。
1995年,Erich Gamma、John Vlissides、Ralph Johnson和Richard Helm出版了《Design Patterns: Elements of Reusable Object-Oriented Software》(中文:设计模式:可重用的面向对象软件设计)一书,他们将设计模式应用于编程。因为它的名字太长,所以被称为GOF书或四人帮书。
为什么要学习这些设计模式
设计模式是一套针对常见软件设计问题的久经考验的解决方案。即使我们从未遇到过这些问题,学习设计模式仍然是有价值的,因为它教会我们如何使用面向对象设计的原则来解决各种问题。
通过提供模式术语,设计模式还可以促进团队成员之间的交流。
设计模式的分类
设计模式分为三类:
创建模式:提供了对象创建机制,增加了现有代码的灵活性和可重用性。结构模式:解释了如何将对象和类组装成一个更大的结构,同时保持结构的灵活性和效率。行为模式:负责客户之间的有效沟通和责任分配。
创建设计模式
创建模式提供了各种对象创建机制,增加了现有代码的灵活性和可重用性。
GoF设计模式定义了五种设计模式:
单例:单例是一种创建设计模式,它确保一个类只有一个实例,并为这个实例提供一个全局访问点。工厂:工厂方法是一种创造性的设计模式,它提供了在超类中创建对象的接口,并允许子类改变所创建对象的类型。抽象工厂:抽象工厂是一种创建设计模式,它允许生成相关对象的类,而无需指定它们的特定类。构建器:生成器是一种创造性的设计模式,它可以一步一步地构建复杂的对象。您可以使用相同的构造代码来创建不同类型和表示的对象。原型:原型是一种创造性的设计模式,它允许您复制现有的对象,而无需让您的代码依赖于它们的类。结构设计模式
设计模式解释了如何将对象和类组装成更大的结构,同时保持它们的灵活性和效率。
GoF设计模式中定义了七种结构设计模式:
适配器:适配器是一种结构化设计模式,允许接口不兼容的对象进行通信。复合:组合是一种结构设计模式,它允许您将对象组合成树结构,然后像使用单个对象一样使用这些结构。代理:代理是一种结构设计模式,允许您提供占位符或替换另一个对象。使用代理,您可以控制对原始对象的访问,并允许在将请求传递给原始对象之前或之后执行某些操作。享元:使用共享元素,你可以通过在多个对象之间共享状态的公共部分来将更多的对象放入RAM,而不是将所有数据保存在每个对象中。外观:外观是一种设计模式,为库、框架或任何其他类集提供了一个简化的接口。桥接:允许将一个大类或一组密切相关的类分成两个独立的层次:独立开发的抽象和实现。装饰器:使用装饰设计模式,您可以通过将新行为放入包含新行为的特殊包装对象中,将新行为附加到对象上。行为设计模式
行为模式涉及算法和对象之间的责任分配。
GoF设计模式中定义了11种行为设计模式:
模板方法:模板方法在超类中定义了算法的骨架,允许子类覆盖特定的步骤,而无需修改其结构。中介者:使用中介可以减少对象之间的混乱依赖。这种模式限制了对象之间的直接通信,并迫使它们只能通过中介进行合作。责任链:责任链允许您沿着处理程序链传递请求。收到请求后,每个处理程序决定是处理请求还是将请求传递给链中的下一个处理程序。观察者:观察者模式允许你定义一种机制来通知多个对象他们正在观察的事件。策略:使用策略,你可以定义一系列的算法,把它们分成不同的类,并使它们的对象可以互换。命令:命令是一种行为设计模式,它将请求转换成包含所有相关信息的独立对象。通过这种转换,您可以使用各种请求参数化方法,延迟或排队请求的执行,并支持可撤销的操作。状态:作为一种行为设计模式,状态允许对象在其内部状态改变时改变其行为。看起来好像这个对象改变了它的类。访问者:在访问者模式下,你可以把算法和它们操作的对象分开。解释器:解释器是一种行为设计模式,它定义了一种语言的语法表示,并提供一个解释器来处理这种语法。迭代器:一种叫做迭代器的行为设计模式允许你遍历集合中的元素,而不暴露它们的底层表示。备忘录:记忆模式允许保存和恢复一个对象以前的状态,而不暴露它的实现细节。以上是23种模式的介绍。在下个月的文章中,让我们详细学习这些设计模式。
Binary Gods
动作格斗 | 0KB
查看
宠物小精灵go内购破解版
角色扮演 | 190M
查看
life goes on 鸭的一生特效版
休闲益智 | 69.83MB
查看
google浏览器 手机版
系统安全 | 213.39MB
查看
上帝的战争死亡之地游戏安卓中文版(Gods War: Place of the Death) v70
体育竞技 | 99.81MB
查看
google浏览器 2023官方下载
系统安全 | 213.94MB
查看
iGO出行
地图导航 | 54.3M
查看
悦享GO官方版
网上购物 | 19.9M
查看
gimbal go
图像摄影 | 93.7M
查看
大掌门2金将怎么组合