单例模式、简单工厂、工厂方法、抽象工厂

创建型设计模式详解

3.1 设计模式介绍

        在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四⼈合著出版了⼀本名为 Design Patterns - Elements of Reusable Object-Oriented Software (中⽂译名:设计模式 - 可复⽤的⾯向对象软件元素) 的书,该书⾸次提到了软件开发中设计模式的概念。四位作者合称 GOF(四⼈帮,全拼 Gang of Four)。
        设计模式 ****(Design pattern)是⼀套被反复使⽤、多数⼈知晓的、经过分类编⽬的、代码设计经验的总结 。使⽤设计模式是为了可重⽤代码、让代码更容易被他⼈理解、保证代码可靠性。 毫⽆疑问,设计模式于⼰于他⼈于系统都是多赢的,设计模式使代码编制真正⼯程化,设计模式是软件⼯程的基⽯,如同⼤厦的⼀块块砖⽯⼀样。项⽬中合理的运⽤设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每⼀个模式描述了⼀个在我们周围不断重复发⽣的问题,以及该问题的核⼼解决⽅案,这也是它能被⼴泛应⽤的原因。
  • 创建型模式对象实例化的模式创建型模式⽤于解耦对象的实例化过程
  • 结构型模式把类或对象结合在⼀起形成⼀个更⼤的结构。
  • ⾏为型模式类和对象如何交互,及划分责任和算法
        ** 开闭原则(Open Closed Principle,OCP)** 由勃兰特 · 梅耶(Bertrand Meyer)提出,他在1988 年的著作《⾯向对象软件构造》(Object Oriented Software Construction)中提出: 软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,but closed for modification)。
        ** ⾥⽒替换原则(Liskov Substitution Principle,LSP)** 由麻省理⼯学院计算机科学实验室的⾥斯科夫(Liskov)⼥⼠在 1987 年的 “⾯向对象技术的⾼峰会议”(OOPSLA)上发表的⼀篇⽂章《数据抽象和层次》(Data Abstraction and Hierarchy)⾥提出来的,她提出: 继承必须确保超类所拥有的性质在⼦类中仍然成⽴(Inheritance should ensure that any property proved about supertype objects also holds for subtype objects)
  •         ** 任何基类可以出现的地⽅,⼦类⼀定可以出现,只有当派⽣类可以替换掉基类,软件功能不受影响时,基类才能真正被复⽤,** ⽽派⽣类也能够在基类的基础上增加新的⾏为。
        ** 依赖倒置原则(Dependence Inversion Principle,DIP)** 是 Object Mentor 公司总裁罗伯特 · ⻢丁(Robert C.Martin)于 1996 年在 C++ Report 上发表的⽂章。依赖倒置原则的原始定义为: ⾼层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象(High level modules shouldnot depend upon low level modules.Both should depend upon
abstractions.Abstractions should not depend upon details. Details should depend upon
abstractions) 。其核⼼思想是:要⾯向接⼝编程,不要⾯向实现编程。
  •         ⾼层不应该依赖低层,要⾯向接⼝编程。在⾼层和底层之间插⼊⼀层抽象层,屏蔽底层细节,向上层提供统⼀的接⼝。
        单⼀职责原则(Single Responsibility Principle,SRP)⼜称单⼀功能原则,由罗伯特 ·C. ⻢丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》⼀书中提出的。这⾥的职责是指类变化的原因,单⼀职责原则规定⼀个类应该有且仅有⼀个引起它变化的原因,否则类应该被拆分(There should never be more than one reason for a class to change)
        ** 接⼝隔离原则(I
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值