`

设计模式分类及六大原则

阅读更多

一、设计模式的分类

总体来说设计模式分为三大类:

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

其实还有两类:并发型模式和线程池模式。用一个图片来整体描述一下:

 

二、设计模式的六大原则

1、开闭原则(Open Close Principle)

开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。

2、里氏代换原则(Liskov Substitution Principle)

里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。(eg:List 出现的地方一定可以用ArrayList替换)

3、依赖倒转原则(Dependence Inversion Principle)

这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。(程序中尽量用接口,eg:用List 而少用ArrayList)

4、接口隔离原则(Interface Segregation Principle)

这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。(接口尽量实现原子性)

5、迪米特法则(最少知道原则)(Demeter Principle)

为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。(实体之间的相互作用尽量减少)

6、合成复用原则(Composite Reuse Principle)

原则是尽量使用合成/聚合的方式,而不是使用继承。(尽量用弱关联替代强关联)

分享到:
评论

相关推荐

    设计模式分类以及六大原则

    设计模式分类以及六大原则整理

    GOF的23种设计模式,及设计模式的六大原则

    GOF是设计模式的经典名著Design Patterns: Elements of Reusable Object-Oriented Software(中译本名为《设计模式——可复用面向...他们总结了23个设置模式,以下将给出这23个设计模式的说明,及设计模式的六大原则.

    设计模式之六大设计原则

    设计模式(Design pattern)是一套被反复使用、多数人知知道的、经过分类编目的、代码设计经验的总结。使用设计模式的目的是为了提高代码的可重用性、保证代码的可靠性、让代码更加规范、...二 设计模式之六大设计原则

    尚硅谷设计模式源码笔记课件.zip

    本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计模式,包括 设计模式七大原则、UML类图-类的六大关系、23种设计模式及其分类,...

    设计模式uml.vsdx

    2.设计模式的六大原则 1、开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。在程序需要... 3.Java的23中设计模式 从这一块开始,我们详细介绍Java中23种设计模式的概念,应用...

    设计模式整体框架与结构

    原则:设计模式遵循六大原则,包括开闭原则、里氏替换原则、依赖倒置原则等,这些原则指导开发者如何正确地应用设计模式。 常用模式:例如单例模式、工厂模式、观察者模式等,每种模式都有其特定的应用场景和解决的...

    设计模式.docx

    设计模式笔记,囊括23种设计模式,Java语言实现。 每个设计模式包含以下几块(1)问题案例,引出问题(2)解决思路...在笔记最后进行设计模式总结(1)模式的三大分类(2)设计模式六大原则(3)设计模式的使用注意点。

    介绍设计模式相关知识的资料

    主要包括五个部分 1、Java设计模式简介 2、设计模式之六大原则 3、设计模式分类 4、几种典型的设计模式 5、总结

    学习JAVA-23种设计模式

    学习JAVA-23种设计模式。1.设计模式的分类2.设计模式的六大原则3.依赖倒转原则4.接口隔离原则5.迪米特法则6.合成复用原则...

    图解Java设计模式(一)

    本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计模式,包括 设计模式七大原则、UML类图-类的六大关系、23种设计模式及其分类,...

    敏捷软件开发:原则、模式与实践.pdf

     ●设计模式:本书中讲述了23个设计模式,并都有具体的实例。讲解的重点在如何在实际的应用中去使用模式,如何根据当前问题的上下文以及约束力去选择最适合的模式,以及何时避免使用模式。  ●UML:本书不是关于 ...

    全新150集通俗易懂的Java设计模式

    本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计模式,包括 设计模式七大原则、UML类图-类的六大关系、23种设计模式及其分类,...

    DisignPatterns:设计模式学习

    #设计模式的六大原则##1、开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展...

    java简易投票系统源码下载-DesignModeDemo:23种设计模式swift实现

    一、设计模式七大原则(有些地方使用六大原则,没有第六调,此处主要是总结,用于学习) 1、单一职责原则 一个类只负责一个功能领域中的相应职责 2、里氏替换原则 任何基类可以出现的地方,子类一定可以出现 3、依赖...

    asp.net知识库

    2分法-通用存储过程分页(top max模式)版本(性能相对之前的not in版本极大提高) 分页存储过程:排序反转分页法 优化后的通用分页存储过程 sql语句 一些Select检索高级用法 SQL server 2005中新增的排序函数及应用 ...

    推荐系统架构师考试全套视频教程合集.zip

    10.5.2安全策略设计原则 第十一部分 系统配置与性能评价 11.1系统故障模型 11.2系统配置方法 11.3可靠性分析与可靠度计算 11.4性能评价方法 11.5软件容错 第十二部分 知识产权与标准化 12.1知识产权 12.1.1保护...

    智能停车场收费管理系统.doc

    智能停车场收费管理系统 目 录 第一章:概述 第三章:系统工程设计和基本构成说明 第四章:系统主要设备简介 第五章:可选系统部件 第六章:系统软件功能 附件:系统配置清单 质量保证方案 工程实施及售后服务 智能...

    网趣网上购物系统时尚版V13.0

     三四、强大的SEO优化,支持大、小、子分类关键词及描述设置  三五、支持积分兑换、商品评论及推荐、投票等常用功能。  三六、报价中心鼠标指向商品显示商品图片功能。增加普通会员VIP在线申请。  三七、支持...

Global site tag (gtag.js) - Google Analytics