首页IT科技设计模式介绍和单一职责原则的关系(设计模式介绍和单一职责原则)

设计模式介绍和单一职责原则的关系(设计模式介绍和单一职责原则)

时间2025-04-30 12:45:21分类IT科技浏览3146
导读:设计模式的目的 编写软件过程中,程序员面临着来自...

设计模式的目的

编写软件过程中            ,程序员面临着来自 耦合性                ,内聚性以及可维护性      ,可扩展性         ,重用性                ,灵活性 等多方面的 挑战         ,设计模式是为了让程序(软件)      ,具有更好

代码重用性 (即:相同功能的代码                ,不用多次编写) 可读性 (即:编程规范性, 便于其他程序员的阅读和理解) 可扩展性 (即:当需要增加新的功能时            ,非常的方便   ,称为可维护) 可靠性 (即:当我们增加新的功能后                ,对原来的功能没有影响) 使程序呈现高内聚              ,低耦合的特性

设计模式七大原则

设计模式原则,其实就是程序员在编程时              ,应当遵守的原则                ,也是各种设计模式的基础(即:设计模式为什么 这样设计的依据)

设计模式常用的七大原则有:

单一职责原则

接口隔离原则

依赖倒转(倒置)原则

里氏替换原则

开闭原则

迪米特法则

合成复用原则

单一职责原则基本介绍

​ 对类来说的   ,即一个类应该只负责一项职责           。如类 A 负责两个不同职责:职责 1            ,职责 2                  。当职责 1 需求变更 而改变 A 时                ,可能造成职责 2 执行错误      ,所以需要将类 A 的粒度分解为 A1         ,A2

案例(代码):

package com.atguigu.principle.singleresponsibility; public class SingleResponsibility1 { public static void main(String[] args) { Vehicle vehicle = new Vehicle(); vehicle.run("摩托车"); vehicle.run("汽车"); vehicle.run("飞机"); } } class Vehicle { public void run(String vehicle) { System.out.println(vehicle + " 在公路上运行...."); } }

运行结果:

这个代码违反了单一职责原则                ,不是优秀的代码     。

改进1:

package com.atguigu.principle.singleresponsibility; public class SingleResponsibility2 { public static void main(String[] args) { RoadVehicle roadVehicle = new RoadVehicle(); roadVehicle.run("摩托车"); roadVehicle.run("汽车"); AirVehicle airVehicle = new AirVehicle(); airVehicle.run("飞机"); } } class RoadVehicle { public void run(String vehicle) { System.out.println(vehicle + "公路运行"); } } class AirVehicle { public void run(String vehicle) { System.out.println(vehicle + "天空运行"); } } class WaterVehicle { public void run(String vehicle) { System.out.println(vehicle + "水中运行"); } }

运行结果:

优点:

遵守了单一职责原则

缺点:

这样做的改动很大         ,将类分解      ,同时修改客户端

改进2:

package com.atguigu.principle.singleresponsibility; public class SingleResponsibility3 { public static void main(String[] args) { Vehicle2 vehicle2 = new Vehicle2(); vehicle2.run("汽车"); vehicle2.runWater("轮船"); vehicle2.runAir("飞机"); } } class Vehicle2 { public void run(String vehicle) { System.out.println(vehicle + " 在公路上运行...."); } public void runAir(String vehicle) { System.out.println(vehicle + " 在天空上运行...."); } public void runWater(String vehicle) { System.out.println(vehicle + " 在水中行...."); } }

运行结果:

优点:

遵守了单一职责原则                ,而且这种修改方法没有对原来的类做大的修改            ,只是增加方法   ,这里虽然没有在类这个级别上遵守单一职责原则                ,但是在方法级别上              ,仍然是遵守单一职责

单一职责原则注意事项和细节

降低类的复杂度,一个类只负责一项职责        。

提高类的可读性              ,可维护性

降低变更引起的风险

通常情况下                ,我们应当遵守单一职责原则   ,只有逻辑足够简单            ,才可以在代码级违反单一职责原则;只有类中 方法数量足够少                ,可以在方法级别保持单一职责原则      ,上面第三个代码就是这种情况

这篇博客是我在B站看韩顺平老师数据结构和算法的课时的笔记         ,记录一下                ,防止忘记         ,也希望能帮助各位朋友                  。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
处理请求的任务时出错(学习笔记——处理请求与响应的接口(HttpServletRequest、HttpServletResponse)) 如何优化网站排名靠前(怎么优化网站排名)