面向对象设计原则

面向对象设计原则

单一职责原则:

  我们可以看到,这个Peop类可以说是十八般武艺样样精通了,啥都会,但是实际上,我们每个人最终都是在自己所擅长的领域工作,所谓闻道有先后,术业有专攻,会编程的就应该是程序员,会打螺丝的就应该是工人,会送外卖的应该是骑手,显然这个Pope太过臃肿(我们需要修改任意一种行为都需要修改P©ople类,它拥有不止一个引起它变化的原因),所以根据单一职责原则,我们下需要进行更明确的划分,同种类型的操作我们一般才放在一起:

开闭原则:

  一个软件实体,比如类、模块和函数应该对扩展开放,对修改关闭。其中,对扩展开放是针对提供方来说的,对修改关闭是针对调用方来说的。

里氏替代原则:

  子类可以扩张父类的功能,但是不能改变父类的原有功能

    1.子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
    2.子类可以增加自己特有的方法。
    3.当子类的方法重载父类的方法时,方法的前置条件(即方法的输入入参)靴父类方法的输入参数更宽松。
    4.当子类的方法实现父类的方法时(重写/重载或实现抽象方法),方法的后置条件(即方法的输出/返回值)要比父类更严格或与父类一样。

依赖倒转原则:

  Spring,在原来进行业务开发,我们去每次使用时进行new来创建对象,而是通过bean的方式进行注入,这样就可以在维护上我们只用去修改这些接口的实现类,这样我们在进行bean注入时就可以直接注入它的接口,这样我们在修改了实现类也不会影响到bean注入。

接口隔离原则:

  在定义接口时,由于定义的接口不够细节,导致这个接口的一些方法在不适用,所以我们应该去把这些接口更加细分

合成复用原则:

  如果你的一个类只是使用另一个类中的一些方法,不是全部,这样就最好不要去用继承的思想去使用,会导致去拿到了继承这个类里面一些不应该拿到的字段,这样耦合度太高

迪米特法则:

  简单来说就是,一个类/模块对其他的类/模块有越少的交互越好。当一个类发生改动,那么,与其相关的类(比如用到此类啥方法的类)需要尽可能少的受影响(比如修改了方法名、字段名等,可能其他用到这些方法或是字段的类也需要跟着修改)这样我们在维护项目的时候会更加轻松一些。

 

posted @   计算机毕小白  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示