欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java面试必知:软件设计的七大原则

程序员文章站 2022-03-10 23:08:44
软件设计的七大原则单一职责原则【定义】一个类应该只有一个职责,只完成一个功能【解释】MVC三层结构中,Controller专门负责接收数据,分配执行流程Service专门负责实现业务逻辑DAO专门负责数据的CRUD操作开闭原则【定义】 一个类应该对扩展开放,对修改关闭【解释】针对接口编程,面对新的需求变化,应该尽量少改已存在的老代码,只增加新的代码依赖倒置原则【定义】高层模块不应该依赖低层模块,二者都应该依赖其抽象抽象不应该依赖细节,细节应该依赖抽象【解释】类应该依赖于抽...

软件设计的七大原则

  1. 单一职责原则

    【定义】一个类应该只有一个职责,只完成一个功能
    【解释】MVC三层结构中,Controller专门负责接收数据,分配执行流程
    Service专门负责实现业务逻辑
    DAO专门负责数据的CRUD操作

  2. 开闭原则

    【定义】 一个类应该对扩展开放,对修改关闭
    【解释】针对接口编程,面对新的需求变化,应该尽量少改已存在的老代码,只增加新的代码

  3. 依赖倒置原则

    【定义】高层模块不应该依赖低层模块,二者都应该依赖其抽象
    抽象不应该依赖细节,细节应该依赖抽象
    【解释】类应该依赖于抽象类或接口,不要依赖具体类,通过父类引用指向子类对象实现多态性
    Don’t call me, I will call you

  4. 合成复用原则

    【定义】优先使用组合(has a的关系),尽量不使用继承(is a的关系)
    【解释】继承的耦合性太高, 如果非要使用继承,子类也应该继承抽象类,而不应该继承具体类

  5. 迪米特原则

    【定义】一个对象应当对其他对象有尽可能少的了解,只和直接朋友交谈,不要和陌生人说话
    【解释】封装具体实现细节,外界只关心使用接口,无需关心内部实现,尽量降低类间的耦合
    只和直接朋友交谈—类之间只要有耦合(依赖、关联、聚合、组合),就称为朋友关系。类的成员变量、方法的参数和返回值是类的直接朋友,而方法的局部变量不是类的直接朋友。

不要和陌生人说话—一个类对自己所依赖的类的细节,知道得越少越好。无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,并对外提供公有方法,不对外泄露实现细节。

  1. 里氏替换原则

    【定义】所有能使用父类的地方,都能透明地替换为子类
    【解释】子类可以扩展父类的功能,但不能改变父类原有的功能,尽量不要重写父类的方法

  2. 接口隔离原则

    【定义】一个类实现的接口应该是最小接口,客户端不需要的方法不应该出现在接口定义中
    【总结】软件设计原则的核心思想就是针对接口编程,找出变化的部分独立抽取出来,使变化的部分和不变的部分之间解耦

本文地址:https://blog.csdn.net/weixin_41774732/article/details/107360337