本文共 1462 字,大约阅读时间需要 4 分钟。
一:设计模式起源
来自维基百科:
建筑师在1977/79年编制了一本汇集设计模式的书,但是这种设计模式的思想在建筑设计领域里的影响远没有后来在软件开发领域里传播的广泛。
和在1987年,利用克里斯托佛·亚历山大在建筑设计领域里的思想开发了设计模式并把此思想应用在Smalltalk中的图形用户接口(GUI)的生成中。一年后在他的博士毕业论文中开始尝试把这种思想改写为适用于软件开发。与此同时James Coplien 在1989年至1991年也在利用相同的思想致力于C++的开发,而后于1991年发表了他的著作Advanced C++ Programming Styles and Idioms。同年Erich Gamma 得到了博士学位,然后去了美国,在那与Richard Helm, Ralph Johnson ,John Vlissides 合作出版了《》(Design Patterns - Elements of Reusable Object-Oriented Software) 一书,在此书中共收录了 23 種设计模式。
这四位作者在软件开发领域里以“四人帮”(英語,Gang of Four,简称GoF)而闻名,并且他们在此书中的协作导致了软件设计模式的突破。有時,GoF也會用於代指《设计模式》这本书
----------------------------------
关于设计模式,
最出名的一本书:《Design Patterns: Elements of Reusable Object-Oriented Software》
由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)
这几位作者常被称为"四人组(Gang of Four)
二:分类
维基百科上对于设计模式的分类不仅限于这三大类23种,不过暂时先了解这23种吧
设计模式总体分为三大类
创建者模式(5种):抽象工厂模式,工厂方法模式,建造者模式,单例模式,原型模式
结构型模式(7种):适配器模式,桥接模式,组合模式,外观模式,装饰者模式,享元模式,代理模式
行为型模式(11种):责任链模式,命令模式,解释器模式,迭代模式,中介者模式,备忘录模式,观察者模式,状态模式,策略模式,模板方法模式,访问者模式
三:设计模式遵循的原则
1、开闭原则(Open Close Principle)
对扩展开放,对修改关闭。
2、里氏代换原则(Liskov Substitution Principle)
只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。
3、依赖倒转原则(Dependence Inversion Principle)
这个是开闭原则的基础,对接口编程,依赖于抽象而不依赖于具体。
4、接口隔离原则(Interface Segregation Principle)
使用多个隔离的借口来降低耦合度。
5、迪米特法则(最少知道原则)(Demeter Principle)
一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
6、合成复用原则(Composite Reuse Principle)
原则是尽量使用合成/聚合的方式,而不是使用继承。继承实际上破坏了类的封装性,超类的方法可能会被子类修改。
转载地址:https://blog.csdn.net/perfectnihil/article/details/91350218 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!