1.开闭原则
对扩展开放对修改关闭
提高可拓展性和维护性
用抽象构建框架,用实现拓展细节
- 核心思想:面向抽象编程
package com.yulang.design_pattern_23.open_close;public interface ICourse {public Double getPrice();}
package com.yulang.design_pattern_23.open_close;public class JavaCourse implements ICourse {@Overridepublic Double getPrice() {return 300.00;}}
package com.yulang.design_pattern_23.open_close;public class DiscountJavaCourse extends JavaCourse {public Double getDiscountPrice(){return super.getPrice()*0.8;}public Double getOrginPrice(){return super.getPrice();}}
package com.yulang.design_pattern_23.open_close;public class Test {public static void main(String[] args) {DiscountJavaCourse discountJavaCourse = new DiscountJavaCourse();System.out.println(discountJavaCourse.getOrginPrice());}}
2.依赖倒转原则
高层模块不应该依赖低层模块,二者都应该依赖其抽象
抽象不应该依赖细节
针对接口编程,不要针对实现编程
优点: 减少代码间的耦合
package com.yulang.design_pattern_23.dependence;public interface ICoruse {public void study();}
package com.yulang.design_pattern_23.dependence;public class JavaStudy implements ICoruse {@Overridepublic void study() {System.out.println("java----------");}}
package com.yulang.design_pattern_23.dependence;public class PythonStudy implements ICoruse {@Overridepublic void study() {System.out.println("python--------------");}}
package com.yulang.design_pattern_23.dependence;public class Geely {public void study(ICoruse coruse){coruse.study();}}
package com.yulang.design_pattern_23.dependence;public class Test {public static void main(String[] args) {Geely geely = new Geely();geely.study(new JavaStudy());geely.study(new PythonStudy());}}
3.单一职责原则
不要存在多于一个导致类变化的原因
一个类只做一件事
优点: 降低类的复杂性,提高类的可读性
提高系统的可维护性
4.接口隔离原则
用专门的接口而不是使用单一的总接口
一个类对一个类的依赖应该建立在最小的接口上
接口注意一定要适度
符合高内聚低耦合的设计思想
5.迪米特法则
一个对象应该对其他对象保持最少的了解,又叫最少知道原则
尽量降低类与类之间的欧耦合

