OOP相对比较容易学习,毕竟与编程语言的语法有很大关系.但是OOD就很复杂了,一个大的系统,到了后期越来越混乱,大多数原因是随着新员工的不断加入,他们不能和以前的老员工或者已离职的员工的设计概念保持一致.或者由于系统上线后,新来的业务需求大部分是以一个个小的特性加入到系统中,所以开发人员,管理人员都以一种很容易实现的方式去做这些事情,结果到后面就乱成一团.所以,系统在后期有个重要的工作,就是不断进行架构的重构,以便使新的模块,代码能与以前的在构架概念上保持一致.一个大的系统如果不以OOD的方式设计,那么构架师基本上很难把这个系统向新的涉众解释清楚,无论你是用用例图,类图,序列图,还是交互图,部署图,都难.必须要以一个个的子系统去描述它.
总之,概念完整性是系统成功的关键.设计上的技术可能对某一个模块的影响会比较大.