zoukankan      html  css  js  c++  java
  • 软件设计六大原则个人理解记录

    设计模式的六大原则有:

    Single Responsibility Principle:单一职责原则
    Open Closed Principle:开闭原则
    Liskov Substitution Principle:里氏替换原则
    Law of Demeter:迪米特法则
    Interface Segregation Principle:接口隔离原则
    Dependence Inversion Principle:依赖倒置原则
    把这六个原则的首字母联合起来就是 SOLID (solid,稳定的),其代表的含义就是这六个原则结合使用的好处:建立稳定、灵活、健壮的软件设计

    单一职责原则:能引起类变化的原因只有一个,类的设计尽量做到一个原因引起变化

    开闭原则 通过类的扩展实现类的变化,而不是通过修改。从而减少对原来的健壮性代码的修改。

    里氏替换原则 父类出现的地方都能用子类进行替换,但是这是最终的目的,怎么才能实现这个目的才是里氏替换原则的理念
    1.子类必须完全实现父类的方法,其意义是子类必须实现父类的所有方法,并且要贯彻好父类业务的思想,不能继承其方法而与其父类的功能理念不一样
    2.子类可以有自己的属性和方法,与上一条不冲突,意思是父类是子类的一个子集,但是尽量避免子类出现自己的个性
    3.覆盖和实现父类的方法的时候输入参数可以被放大,试想如果不满足的话岂不是无法实现里氏替换
    4.覆盖和实现父类的方法的时候输出参数可以被缩小
    接口隔离原则
    类间的依赖关系应该建立在最小的接口上
    也就是一个接口的方法应该尽量的少
    依赖倒置原则
      依赖倒置原则在java语言中的表现
    1.模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的
    2.接口或者抽象类不依赖于实现类
    3.实现类依赖接口或抽象类
      对象的依赖的传递方式
    1.构造函数传递依赖对象
    2.setter方法传递依赖对象
    3.接口声明依赖对象
    迪米特法则(最少知识法则)
    1.一个类只和自己的朋友类产生耦合关系,朋友类指的是出现在成员变量、方法的输入输出参数中的类称为成员朋友类
    2.对朋友类的方法知道的越少越好
    3.如果一个方法放在本类中,既不增加类间关系,也对本类不产生负面影响,那就放置在本类中

      另外从设计模式之禅中领悟理解

  • 相关阅读:
    第二面某知科技的
    面试的提问和大致经过
    抓取菜鸟教程中python内置函数的关键字和链接
    记录下之前写的udp,tcp。很浅显
    python连接mongodb数据库操作
    生成随机字母或数字
    python连接mysql基本操作
    post登录请求
    文件的读写
    request,正则爬虫
  • 原文地址:https://www.cnblogs.com/hopeofthevillage/p/12341475.html
Copyright © 2011-2022 走看看