单一原则
一个类,一个方法,只负责一件事
里氏替换原则
在任何使用父类对象的地方,替换为子类对象后,程序不会有任何问题
依赖倒置
上层不能依赖于下层,他们都应该依赖于抽象;
举例:dao,service通过dao接口+dao工厂来访问下层的dao实现的,在以后扩展dao时,上层service是不用改动的
迪米特法则
最小知道原则,一个类,对于另一个类,应该知道的越少越好(封装);
只和朋友通信:a.方法参数
b.方法返回值
c.方法内,实例化出来的局部变量
d.类中的字段
接口隔离
使用多个专门的接口比使用单一的总接口要好
举例:IUserDao、IBookeDao
开闭原则
对扩展开放,对修改关闭
组合优于继承
如果父类和子类作者不是同一个人,那么就慎用继承,应该使用组合
理由:父类作者不知道未来的用户,会重写自己的什么方法
子类作者不知道作者在未来的版本里,会改写什么方法,添加什么方法