• 设计模式七大原则-单一职责原则SingleResponsibility


    七大原则是在设计“设计模式”的时候需要用到的原则,它们的存在是为了保证设计模式达到以下几种目的:

    1.代码重用性

    2.可读性

    3.可拓展性

    4.可靠性(增加新的功能后,对原来的功能没有影响)

    5.使程序呈现高内聚、低耦合的特性

    单一职责:

    对类来说,即一个类应该只负责一项职责(并不是只有一个方法,即关系“订单”的类不关心“员工”)。如类A负责两个不同的职责:职责1,职责2.当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的颗粒度分解为A1、A2。

    例子:这里的Vehicle类颗粒度不够细,调用vehicle.run("飞机")时,业务逻辑是错误的。违背了单一职责原则。

    1. public class singleResponsibility {
    2. public static void main(String[] args) {
    3. Vehicle vehicle = new Vehicle();
    4. vehicle.run("汽车");
    5. vehicle.run("飞机");
    6. }
    7. //Java中的内部类需要一个外部类的实例来创建它的实例,除非它是一个静态内部类。
    8. static class Vehicle {
    9. void run (String vehicle){
    10. System.out.println(vehicle+"在路上跑");
    11. }
    12. }
    13. }

    目的:

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

    2.提高代码的可读性,可维护性、

    3.降低变更引起的风险。

    4.通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则,只有类中方法数量足够少,可以在方法级别保持单一职责原则。【也就是要根据实际情况权衡利弊,如果加类太浪费的话就只加几个方法就可以】

    1. public class singleResponsibility {
    2. public static void main(String[] args) {
    3. Vehicle2 vehicle2 = new Vehicle2();
    4. vehicle2.runOnroad("汽车");
    5. vehicle2.runOnair("飞机");
    6. }
    7. //Java中的内部类需要一个外部类的实例来创建它的实例,除非它是一个静态内部类。
    8. static class Vehicle1 {
    9. void run (String vehicle){
    10. System.out.println(vehicle+"在路上跑");
    11. }
    12. }
    13. static class Vehicle2 {
    14. void runOnroad (String vehicle){
    15. System.out.println(vehicle+"在路上跑");
    16. }
    17. void runOnair (String vehicle){
    18. System.out.println(vehicle+"在天上飞");
    19. }
    20. }
    21. }

  • 相关阅读:
    c++ - 第13节 - c++中的继承
    RabbitMQ:发布订阅和路由模式
    shell脚本练习及小总结
    E. Tyler and Strings(组合计数 + 树状数组/线段树)(带重复元素的全排列)
    关于CSS 选择器的常见用法
    Django command执行脚本
    Linux系统离线安装RabbitMQ
    破圈的《张朝阳的物理课》,开启“知识突围”的搜狐视频
    matlab bin格式转txt输出
    Scrum敏捷开发方法
  • 原文地址:https://blog.csdn.net/stan_ko/article/details/139581933