调用者尽量放在被调用者上边java
对象:对象把数据隐藏在抽象以后
数据结构:暴露其数据数据结构
class Square{ } class Rectangle{ } class Gemetry { public area(Object shape) { if (shape instanceof Square) { } else if (shape instanceof Rectangle) { } } }
添加新类:必须修改Gemetry全部函数函数
class Square implements Shape { public area(); } class Rectangle implements Shape { public area(); }
添加新函数:全部类都必须修改单元测试
设计打包类,封装第三方库,否则一堆catch很烦
别返回null
别传null测试
构造-操做-检验(build-operate-check)ui
单一职责原则(SRP) 类或抽象应该只有一个被修改的理由 开放闭合原则(OCP) 类应当对扩展开放,对修改封闭 依赖倒置原则(DIP) 类应当依赖于抽象而不是具体细节设计
将构造和使用分开
工厂模式
依赖注入DI
控制反转IOC
对象不该该负责实例化,应当把这一权责给其余‘有权力’的机制,从而实现控制反转
参考: IoC/DIP实际上是一种管理思想 java代理 --- 代码量大,实现复杂
AOP
POJO(Plain Old Java Object)
DAO 数据存取器对象代理