什么是高内聚低耦
- 总体结构上分解系统
- 底层上提炼抽象层
- 模块间单向依赖
软件工程原则
面向对象设计
单一职责原则(single responsibility principle)
重用 便于单元测试 维护开放和封闭原则(open/closed principle)
具有良好的拓展性适应新的需求变化。不要修改原来的代码(不影响原来的逻辑)里氏代换原则(liskov substitution principle)
子类可以代替父类,(子类实现父类的所有方法)接口隔离原则(interface segregation principle)
一个大接口应该给分割成更小,内聚的接口。依赖反转原则(dependency inversion principle)
面向接口编程,类A直接依赖类B,改为依赖一个抽象类
建立在以抽象为基础的结构上DRY(dont repeat yourself) 不重复自己