首页 > 其他分享 >设计模式-软件设计原则

设计模式-软件设计原则

时间:2023-05-25 21:23:32浏览次数:30  
标签:依赖 原则 软件设计 父类 接口 对象 可维护性 设计模式

开闭原则

定义:一个软件实体如类,模块和函数应该对扩展开放,对修改关闭
用抽象构建框架,用实现扩展细节
优点:提高软件系统可复用性和可维护性

依赖倒置原则

定义:高层模块不应该依赖底层模块,二者都应该依赖其抽象
抽象不应该依赖细节,细节应该依赖抽象
针对接口编程,不要针对实现编程
优点:可以减少类间的耦合性,提高系统稳定性,提高代码可读性和可维护性,可降低修改程序的风险

单一职责原则

定义:不要存在多于一个导致类变更的原因
一个类/接口/方法只负责一项职责
优点:降低类的复杂度,提高类的可读性,提高系统可维护性,降低变更引起的风险

接口隔离原则

定义:用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口
一个类对一个类的依赖应该建立在最小的接口上
建立单一接口,不要建立庞大臃肿的接口
尽量细化接口,接口中的方法尽量少
注意适度原则,一定要适度
符合高内聚低耦合的设计思想,使得类具有很好的可读性,可维护性和可扩展性

迪米特原则

定义:一个对象应该对其他对象保持最少的了解。又叫最少知道原则
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果一个类需要调用另一个类的方法,可以通过第三方转发这个调用
尽量降低类与类之间的耦合
优点:降低类之间的耦合
强调只和“朋友”交流,不和陌生人说话(出现在成员变量,方法的输入,输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋友类)

里氏替换原则

定义:子类型必须能够替换掉它的父类型
一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且他察觉不出父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有发生变化
提高父类的可复用性和扩展性

合成复用原则

在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;
新的对象通过向这些对象的委派达到复用已有功能的目的
要尽量使用合成/聚合,尽量不要使用继承。

标签:依赖,原则,软件设计,父类,接口,对象,可维护性,设计模式
From: https://www.cnblogs.com/ranger-dev/p/17432961.html

相关文章

  • Singleton 单例模式简介与 C# 示例【创建型】【设计模式来了】
     〇、简介1、什么是单例模式?一句话解释:  单一的类,只能自己来创建唯一的一个对象。单例模式(SingletonPattern)是日常开发中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时......
  • 设计模式整理
    责任链模式顾名思义,责任链模式(ChainofResponsibilityPattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该......
  • 设计模式(三)行为型
    1、策略模式和桥梁模式很相似,但桥梁模式的耦合更低,结构更复杂一些。 2、观察者模式观察者模式是一种行为型设计模式,当一个对象发生改变时,所有依赖它的对象都会得到通知并自动更新。这种模式也被称为发布-订阅模式或者消息机制。观察者模式包含以下几个角色:Subject(主题):被......
  • 设计模式(二)结构型
    1、代理模式创建一个代理对象来控制对另一个对象的访问,以提供额外的功能或限制。1publicinterfaceFoodService{2FoodmakeChicken();3FoodmakeNoodle();4}56publicclassFoodServiceImplimplementsFoodService{7publicFoodmakeChic......
  • Java设计模式-建造者模式
    简介建造者模式是一种创建型设计模式,用于将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。建造者模式通过将复杂对象的构建过程分解为多个简单的步骤来实现。与其他创建型模式不同,建造者模式强调的是将构建过程与表示分离,而不是将对象与其构建方式分离......
  • 《设计模式之禅》Singleton_Pattern--单例模式
    单例模式这个模式是很有意思,确实很有意思的,而且比较简单,但是我还是要说因为它使用的是如此的广泛,如此的有人缘,单例就是单一、独苗的意思,那什么是独一份呢?你的思维是独一份,除此之外还有什么不能山寨的呢?我们举个比较难复制的对象:皇帝(就是那个天子)中国的历史上很少出现两个皇帝并存的......
  • 我的软考复习笔记【中级软件设计师】
    目录内聚与耦合内聚耦合统一过程(UP)软件体系结构风格软件能力成熟度模型(CMM)集成测试策略软件测试方法黑盒测试白盒测试需求UML分类协作图的边界类控制类实体类怎么区别null用例图的关系泛化(Inheritance)扩展(extend):包含(include):快速辨认类图的符号1.关联2.泛化3.聚合组件图设......
  • 设计模式(一)创建型
    1、单例模式饿汉模式(最简单):类加载的时候就创建对象,线程安全publicclassSingleton{//首先,将构造方法私有化privateSingleton(){};//创建私有静态实例,意味着在类加载就会进行创建privatestaticSingletoninstance=newSingleton();public......
  • 设计模式
     模板方法设计模式非常重要 什么场景使用过  聚合支付  有共同行为的场景 聚合支付:银联支付支付宝支付 微信支付通过回调通知支付成功修改订单状态为成功1、暴露一个接口,提供给第三方支付回调2、多家支付回调通知参数报文都不相同,但是有共同的通知行为。......
  • 二十三天搞懂设计模式之抽象工厂模式
    文章目录抽象工厂模式1.介绍2.实现3.代码4.总结抽象工厂模式1.介绍意图:提供一个创建一系列相关或者依赖的接口,而无需指定他们具体的类何时使用:系统的产品有多于一个产品族,而系统只消费其中某一族的产品,例子如下当前有个换装游戏,进入不同的游戏场景需要选择不同的游戏套装,比......