第11章:系统
11. 1 如何建造一个城市
即在编写代码时,如何在较高抽象层级,即系统层级保持整洁。
11.2 将系统的构造与使用分开
分解main:将全部构造构成搬迁到main或者被称之为main的模块中。
工厂。有时应用程序要负责何时创建对象,此时可以使用抽象工厂模式。我对于抽象工厂模式还不是很理解。
依赖注入,其可实现分离系统的构造和使用。具体没搞明白。
11.3 扩容
11.4 Java代理
Java代理适用于简单的情况,例如在单独的对象或类中包装方法调用。
11.5 纯Java AOP框架
AOP是面向方面的编程(aspect-oriented programming)
11.6 AspectJ的方面
AspectJ提供了一套用以切分关注面的丰富而强有力的工具。
11.7 测试驱动系统架构
我们可以从简单自然,但切分良好的架构开始做软件项目,快速交付可工作的用户故事,随着规模的增长添加更多基础架构。
我最佳的系统架构由模块化的关注面领域组成,每个关注面均用纯Java对象实现。不同的领域之间用最不具有侵害性的方面或类方面工具整合起来。这种架构能测试驱动,就像代码一样。
11.8 优化决策
模块化和关注面切分成就了分散化管理和决策。
11.9 明智使用添加了可论证价值的标准
11.10 系统需要领域特定语言