软件设计的六大原则剖析

本文详细剖析了软件设计的六大原则:里氏替换原则、单一职责原则、依赖倒置原则、接口隔离原则、迪米特法则和开闭原则。通过实例解释了每个原则的核心思想,强调了遵循这些原则对提高代码的可维护性和可扩展性的重要性。
摘要由CSDN通过智能技术生成

我们平时编写代码时,很少有人为了刻意迎合软件设计原则而编写。其实,有时候是你用到了其中的某个或多个设计原则,而不自知而已。也有可能是有的人压根就不知道设计原则是什么。

不过,没关系,为了搞明白既抽象又玄幻的六大准则,我总结了一句话来概括每一种设计原则所体现的主要思想。

里氏替换原则是指继承时不要破坏父类原有的功能;依赖倒置原则是指要面向接口编程;开闭原则是指对扩展是开放的,对修改是关闭的;职责单一原则是指实现类的职责要单一;接口隔离原则是指设计的接口要尽量简单,专一;迪米特法则是指要降低类之间的耦合度。

下面一一介绍六大类设计原则,看完之后,你会对上边的总结有更深的理解。

一、里氏替换原则

里氏替换原则,乍一看名字,让人摸不着头脑。其实,这是一位姓里的女士提出来的,因此用她的姓氏命名。里氏替换原则,通俗来讲,就是指子类继承父类时,可以扩展父类的功能,但是不要修改父类原有的功能。什么意思呢,举个例子。

//父类
public class Calculate {
    public int cal(int a,int b){
        return a  + b;
    }
}
//子类
public class Calculate2 extends Calculate {
    public int cal(int a,int b){
        return a - b;
    }
}
//测试
public class TestCal {
    public static void main(String[] args) {
        Calculate2 cal2 = new Calculate2();
        int res = cal2.cal(1, 1);
        System.out.println("1 +1=" res); // 1 +1 = 0
    }
}

子类继承了父类之后,想实现新功能,却没有扩展新方法,而是重写了父类的cal方法,因此导致结果 1 +1=0. 这就违反了里氏替换原则。

应该把子类Calculate2修改为,添加一个新方法cal2来实现相减功能

public class Calculate2 extends Calculate {
    public int cal2(int a, int b){
        return a - b;
    }
}

public class TestCal {
    public static void main(String[] args) {
        Calculate2 cal2 = new Calculate2();
        int res = cal2.cal2(1, 1);
        System.out.println("1-1=" res); // 1-1=0
    }
}

有心的人可能会发现,里氏替换原则规定子类不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值