设计组件时应该从不同的问题领域,站在不同的观点上分析,把每一种属性分别考虑。例如Tomcat中的FileLogger组件,它用于把系统日志信息保存到文件系统中。按照这种模式分析,我们从不同的角度看待它:它如何启动服务、停止服务和进行通讯?它的具体的功能有哪些?别的组件可以发给它哪些消息?基于这些考虑,FileLogger组件实现了两种接口:Lifecycle(生存期接口)和LoggerBase(基本功能接口)。Tomcat中使用了Inversion of Control(IOC)模式,其意思是组件总是通过外部进行管理的。组件需要的信息总是来源于外部,实际上组件在生存期的各个阶段都是被创建它的组件管理的。在Tomcat4.0中就是通过这种组件之间的相互控制和调用实现各个功能的。