动机(Motivation)
一个分层良好的系统,应该将处理用户界面(UI)和处理业务逻辑(business
logic)的代码分开。之所以这样做,原因有以下几点:(1)你可能需要使用数个不同的用户界面来表现相同的业务逻辑;如果同时承担两种责任,用户界面
会变得过分复杂;(2)与GUI隔离之后,domain objects的维护和演化都会更容易;你甚至可以让不同的开发者负责不同部分的开发。
如果你遇到的代码是以双层(two-tiered)方式开发,业务逻辑被内嵌于用户界面(UI)之中,你就有必要将行为分离出来。其中的主要工作就是函数的分离和搬移。但数据就不同了:你不能仅仅只是移动数据,你必须将它复制到新建部位中,并提供相应的同步机制。