业务场景
设计模式只是看起来让代码变得复杂,但是却让业务的关系和边界更清晰,降低维护成本和bug出现概率
如果你对自己要开发的业务领域没有清晰的定义和边界,没有设计系统的领域模型,而仅仅跟着所谓的需求不断开发功能,一旦需求来自多个方面,就可能发生需求冲突,或者随着时间的推移,前后功能也会发生冲突,这时你越是试图弥补这些冲突,就越是陷入更大的冲突之中。
产品需求->系统设计->实际代码
DDD的核心目标:通过领域实体及其交互完成业务逻辑处理
组件设计的两大原则:高内聚、低耦合
- 一个组件的抽象化程度应该与其稳定性程度一致
- 抽象的接口组件不应该由低层具体实现组件定义,而应该由高层使用组件定义。高层使用组件依赖接口组件进行编程,而低层实现组件实现接口组件,比如JDK中的JDBC接口组件。
基础
面向对象的本质是多态
好的学=自己做+看别人做+思考
面向接口编程,对外隐藏内部实现细节,包括抛出的异常(从使用者角度思考,是否对外暴露了底层实现细节?)。