依赖导致原则:
定义:
高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象.
作用:
通过面像接口(或抽象类)的编程来降低类间的耦合性.
使用原则:
1. 每个类尽量提供接口或抽象类,或者两者都具备。
2. 变量的声明类型尽量是接口或者是抽象类。
3. 任何类都不应该从具体类派生。
4. 使用继承 (扩展功能)时尽量遵循里氏替换原则。
正确例子:
客户购买不同商品该怎么实现呢?
商品需要抽象一个接口或着抽象类, 不同的商品继承父类, 实现细节.
客户购买类, 应该引用商品抽象类, 不应该引用具体实现类.
父类:
商品父类: 定义属性 商品名, 价格。定义方法 购买函数, 返回商品的名字和价格.
子类:
牙刷类、牙膏类: 重写父类的商品名和价格.
客户购买类:
定义方法 购买函数, 参数是商品父类, 调用其购买函数.