十一、系统

复杂要人命,它消磨开发者的生命,让产品难以规划、构建和测试。

                                                                                           -Ray Ozzie,微软公司CTO

1.将系统的构造和使用分开

软件应该将起始过程和运行时逻辑分离开,在起始过程中构建应用对象,会存在相互缠结的依赖关系。

(1)分解main

将全部构造过程搬迁到main模块中,应用程序只管使用。


十一、系统_第1张图片

(2)工厂

构建能力由工厂控制,而工厂又是在main模块。


十一、系统_第2张图片

(3)依赖注入


2.扩容,隔离关注问题

(1)java代理(通过反射)

(2)纯Java AOP框架(Spring AOP,JBoss AOP)

(3)AspectJ

3.测试驱动系统架构

最佳的系统架构有模块化的关注面领域组成,每个关注面均用纯Java对象实现,不同领域之间用最不具有侵害性的方法或类方面工具整合起来,这种架构能测试驱动,就像代码一样。

你可能感兴趣的:(十一、系统)