设计模式原来这么简单-软件设计七大原则

软件设计七大原则

1.单一职责

要划分清楚每个类的职责,让每个类各尽其责

2.接口隔离

实现接口时要实现最小的接口,如下

public interface BaseList<T>{
    void add(T t);
}
public interface MoreMethodList<T> extends BaseList<T>{
    void remove(T t);
        
    void get(int index);
}

假如有一个类仅仅想拥有add的行为,虽然通过实现MoreMethodList也可以达到目的,但最好的实践是实现BaseList接口

3.迪米特法则

又叫最少知道法则

一个类对自己所依赖类的信息知道的越少越好(被依赖的类应该尽量不向外暴露其内部逻辑,而应仅仅暴露一些公共方法),并且如果两个类不该直接通信就不要存在依赖关系(处理好依赖关系)

4.里氏替换原则

父类被子类替换时类的行为不会受影响(当然是理想状态下),也就是说子类应尽量不要重写父类中已经被实现的方法,如果实在需要重写就考虑使用:1. 组合 2. 改为继承父类的上层父类

5.开闭原则

对扩展开放,对修改关闭

6.组合复用原则

优先考虑用组合解决问题

7.依赖倒置

一个类应尽量依赖与接口和抽象实现,如下

public class StreamResolve{
        private InputStream inputStream;

        StreamResolve(InputStream inputStream) {
            this.inputStream = inputStream;
        }

        public void print() throws IOException {
            BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
            while (bufferedInputStream.available() != 0){
                System.out.println(bufferedInputStream.read());
            }
        }
        
        private void load(String filePath){
            try {
                inputStream = Files.newInputStream(Paths.get(filePath));
            } catch (IOException e) {
                System.out.println("读取文件失败");
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值