-
单一职责
- 有且仅有一个原因引起类的变化;
- 一个方法尽可能仅做一件事情;
- 每个接口尽可能实现同一种业务逻辑
- 获取用户id、头像等对象信息的处理放在一个接口里,删除用户、添加用户等业务逻辑处理放在另外一个接口
-
里氏替换
- 子类继承父类的所有方法;
- 父类出现的地方可以直接用子类替换;
- 覆盖或者实现父类的方法输入参数可以被放大;
- 父类的输入参数是HashMap,那么子类的输入参数可以是Map;
- 覆盖或者实现父类的方法返回参数可以被缩小;
- 父类的返回参数是HashMap,那么子类的返回参数可以是LinkedHashMap;
-
依赖倒置
- 模块之间的依赖通过接口或者抽象类实现;
- 每个实现类尽量要有接口或者抽象类或者两者兼有;
-
接口隔离
- 接口要尽量小;
- 接口要满足单一职责原则;
- 接口要高内聚;
- 定制服务;
- 接口设计师有限度的;
-
迪米特法则
- 只和朋友交流;
- 如果一个方法放在本类中,既不增加类间关系,也对本类不产生负面影响,那就放置在本类中;
-
开闭原则
- 对扩展开发,对修改关闭
- 抽象约束:对象变量或者引用尽量使用接口或者抽象类,尽量不要使用实现类