五大软件设计原则SOLID:
单一职责原则(Single responsibility principle,SRP)
开放封闭原则(Open–closed principle,OCP)
Liskov 替换原则(Liskov substitution principle,LSP)
接口隔离原则(Interface segregation principle,ISP)
依赖倒置原则(Dependency inversion principle,DIP)
开放封闭原则就是开放扩展、封闭修改。
你扩展,ok呀;对原代码修改,no,no,no!
1.想要动手修改代码,跃跃欲试,那么:
提取差异性——变的提取出来,保留不变的——提取变的把它分离成一个个独立的类。
来了需求,你想要修改某类的方法——打住,要观察下在方法里变的部分,把它提取出来作为扩展点——这样结果是,类的方法完全不变,变的只是按照扩展点进行添加同类即可。
2.也可以把共性的提取出来升级为类,然后传递给原来的类作为属性,这样增加一个需求,只要额外增加一个类就行了,原来的类都完全不用变——开放封闭原则
3.总的来说是设计一个类不变,只是扩展其他类传入原先的类作为属性或者传参,来实现扩展。类不变,扩展类变。