设计模式-单一职责原则

设计模式目的与单一职责原则解析
博客介绍了设计模式的目的,包括让程序具备更好的代码重用性、可读性、可扩展性和可靠性,呈现高内聚低耦合特性。还阐述了设计模式的七大原则,重点讲解了单一职责原则,即一个类应只负责一项职责,以及该原则的注意事项和细节。

设计模式的目的

 

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

代码重用性 (即:相同功能的代码,不用多次编写)

可读性 (即:编程规范性,  便于其他程序员的阅读和理解)

可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)

可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)

使程序呈现高内聚,低耦合的特性分享金句:

设计模式包含了面向对象的精髓,“懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要”

Scott Mayers 在其巨著《Effective C++》就曾经说过:C++老手和 C++新手的区别就是前者手背上有很多伤疤

设计模式七大原则

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

  1. 单一职责原则
  2. 接口隔离原则
  3. 依赖倒转(倒置)原则
  4. 里氏替换原则
  5. 开闭原则
  6. 迪米特法则
  7. 合成复用原则

单一职责原则

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

package com.xx.single;

/**
 * 分析:交通工具摩托车可以在路上跑,但是飞机和船不行。违反了单一职责原则。
 */
public class Vehicle {
    public void run(String vehecle){
        System.out.println(vehecle+"在公路上跑");
    }
}

class Test{
    public static void main(String[] args) {
        Vehicle vehicle = new Vehicle();
        vehicle.run("摩托车");
        vehicle.run("飞机");
        vehicle.run("船");
    }

}

按单一职责原则:

package com.xx.single;

/**
 * 分析:交通工具摩托车可以在路上跑,但是飞机和船不行。违反了单一职责原则。
 */
public abstract class Vehicle {
    public abstract void run(String vehecle);
}

class WaterVehicle extends Vehicle{
    @Override
    public void run(String vehecle) {
        System.out.println(vehecle+"在水里跑!");
    }
}

class LandVehicle extends Vehicle{
    @Override
    public void run(String vehecle) {
        System.out.println(vehecle+"在公路上跑!");
    }
}

class SkyVehicle extends Vehicle{
    @Override
    public void run(String vehecle) {
        System.out.println(vehecle+"在天上飞!");
    }
}

/**
 * 修改过后:每一个类负责一种事情。
 */
class Test{
    public static void main(String[] args) {
        Vehicle vehicle = new WaterVehicle();
        vehicle.run("船");

        Vehicle vehicle1 = new LandVehicle();
        vehicle1.run("摩托车");

        Vehicle vehicle2 = new SkyVehicle();
        vehicle2.run("飞机");
    }

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

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

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

降低变更引起的风险

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值