设计模式之六大设计原则[通俗易懂]

设计模式之六大设计原则

大家好,又见面了,我是全栈君。

         在上篇博文中提到了开放—封闭原则,没有细谈。这次我们来总结一下设计模式的几大原则。

         1开放—封闭原则:是指软件实体(类、模块、函数等)应该能够扩展,可是不可改动。

         对原则的理解:开闭原则是最具有理想主义色彩的一个原则,它是面向对象设计的终极目标,以下所要介绍的几个原则能够看成是为了符合开闭原则所作的努力和解决的方法。

对于开闭原则通俗的理解就是。能不改就不改。能少改尽可能的少改。周所周知,物质是运动的,世界是变化的,想要让一个事物永恒不变是不可能的,所以要想让软件绝对符合开闭原则是不可能的。

         2单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因。

         通俗来讲,就是一个类或者是一个模块仅仅干一件事,或者说这个类或者模块仅仅扮演一种角色。它仅仅需将自己负责的活儿干好即可。其它的一概无论,绝对不能瞎掺和。

比方我们在做软件的时候,定义了一个类是负责连接数据库的,至于连接上之后的数据操作就交给其它的函数去做。别都自己揽过来。到时候万一要换数据库那就麻烦了。

         3依赖倒转原则:A 高层模块不应该依赖底层模块。

两个都应该依赖抽象。B 抽象不应该依赖细节,细节应该依赖抽象。

         通俗来说,就是要针对接口编程,不要针对实现编程。在面向过程的软件开发时。为了能够实现代码复用,一般会吧经常使用的一些代码写成函数,大量的函数就组成了函数库,这样在做新的项目时。就能够去调用这些底层的函数,这就是所谓的高层模块依赖底层模块。而我们要达到的目的是高层模块和低层模块没有非常强的耦合性。不论什么一方都能够非常easy的被复用,这样我们就要想办法对他们之间的接口进行设计和编程,在复用的时候仅仅需改动接口或者抽象类就可以。

         4里氏代换原则:子类型必须可以替换掉它们的父类型。

         这个原则的定义非常短,相信应该不难理解。说白了就是一个软件实体假设使用的是一个父类的话,那么将父类都替换成它的子类。则程序依然能够编译通过。而且正常执行。

能够说里氏代换原则是继承复用技术的基础。举个样例。动物类为父类。猫,狗。牛,羊为其子类。当我们实例化一个动物类的对象:动物 animal= new 猫()后。猫具有了父类动物的吃喝拉撒等方法。而当用狗替换掉猫即:动物 animal =new 狗(),依然能够编译执行,没有不论什么不和谐的地方。这就是里氏代换原则的体现。

         5迪米特法则:假设两个类不必彼此直接通信。那么这两个类就不应当发生直接的相互作用。假设当中一个类须要调用还有一个类的某一个方法的话。能够通过第三者转发这个调用。

         对原则的理解:迪米特法则有一个别名叫做最少知识原则,其核心的思想就是尽可能的减少类与类之间的耦合性,说白了就是不要和陌生类交流,就如同我们要找人办事一样,能帮得了你的人。你不认识,那么你就会找一个你认识的同一时候对方也认识的人做中间人,让这个中间人来帮你传达你的意思,这样就能非常好地完毕你想要做的事。

         6合成/聚合复用原则:尽量使用合成/聚合,尽量不要使用类继承。

         所谓聚合表示的是一种弱的拥有关系。体现的是A对象能够包括B对象。但B对象不是A对象的一部分;合成则是一种强的拥有关系。体现了严格的部分和总体的关系。部分和总体的生命周期一样。

在编程中优先使用对象的合成/聚合将有助于保持每一个类被封装。并被集中在单个任务上。这样类和类继承层次会保持较小规模。而且不太可能增长为不可控制的庞然大物。

         我们在进行软件设计的时候,尽量遵循以上原则。力争写出可维护,可复用,可扩展,灵活性好的代码。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116537.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 设计模式之代理模式、适配器模式和外观模式

    编写基于另一组类的包装器接口是一项常见的API设计任务,例如,你的工作可能是维护一个大型的遗留代码库,相比重构所有代码,你更愿意审计一个新的,更简洁的API,以隐藏所有的底层遗留代码;或者你可能已经

    2021年12月19日
    52
  • 前端开发中常用的几种设计模式有哪些_设计模式原理

    前端开发中常用的几种设计模式有哪些_设计模式原理设计模式是对软件设计开发过程中反复出现的某类问题的通用解决方案。设计模式更多的是指导思想和方法论,而不是现成的代码,当然每种设计模式都有每种语言中的具体实现方式。学习设计模式更多的是理解各种模式的内在思想和解决的问题,毕竟这是前人无数经验总结成的最佳实践,而代码实现则是对加深理解的辅助。设计模式可以分为三大类:结构型模式(StructuralPatterns):通过识别系统中组件间的简单关系来简化系统的设计。 创建型模式(CreationalPatterns):处理对象的创..

    2025年7月28日
    4
  • 我的Java设计模式-原型模式

    我的Java设计模式-原型模式

    2022年3月7日
    43
  • [设计模式]委派模式「建议收藏」

    github地址:https://github.com/1711680493点我进入github如需了解更多设计模式,请进入我的设计模式专栏委派模式委派模式不是23设计模式中的一种.与策略模式很相似.拥有以下三种角色抽象任务角色 委派者角色 具体任务角色委派模式,就是将任务发给委派者角色,委派者角色去委派具体任务角色委派模式对外隐藏了具体实现,仅将委派者角色暴露给外部委派模式和策略模式不同的是,委派者角色和具体任务角色都要继承/实现抽象任务角色Spring框架很

    2022年4月16日
    41
  • Java常用的设计模式

    Java常用的设计模式

    2021年5月5日
    110
  • 设计模式之观察者模式建议收藏

    在日常生活中,交通信号灯指挥者日益拥挤的城市交通。红灯亮,汽车停止;绿灯亮,汽车继续前行;在这个过程中,交通信号灯是汽车的观察目标,而汽车则是观察者。随着交通信号灯的变化,汽车的行为也会随之变化,一盏

    2021年12月19日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号