比如说,如果应用有一个服务类,它为与用户帐户相关的人与操作提供了CRUD操作,那么我们就应该将其划分到两个单独的服务类中:
第1个服务提供人的CRUD操作。
第2个服务提供与用户帐户相关的操作。
这么做有如下3个好处:
每个服务类都有一套合理的职责。
每个服务类的依赖会更少,这意味着他们不再是紧耦合的庞然大物了。他们是更加小巧且松耦合的组件。
服务类更易于理解、维护与重用。
这两个简单的步骤可以帮助我们清理应用的架构,提升开发者的生产力和幸福度。现在,我们想知道如果所有这些都是必要的,那么该何时解决这些问题呢?
有时生命是黑白的
我经常听到有人说我们不应该过多的关注于“架构”,因为我们的应用很小并且很简单。虽然这个论调有一定的正确性,不过我们必须要记住一开始很小的项目最后会变得很大。如果不考虑这种情况,那么一旦发生状况,我们就会陷入到巨大的麻烦当中。在未知的水域中航行可不是个好做法,但我们必须要知道,泰坦尼克号在撞到冰山沉没时是在熟悉的航线中航行的。这种事情也会发生在我们的应用中。当事情变得无法控制时,我们必须要有勇气说不。
第1个服务提供人的CRUD操作。
第2个服务提供与用户帐户相关的操作。
这么做有如下3个好处:
每个服务类都有一套合理的职责。
每个服务类的依赖会更少,这意味着他们不再是紧耦合的庞然大物了。他们是更加小巧且松耦合的组件。
服务类更易于理解、维护与重用。
这两个简单的步骤可以帮助我们清理应用的架构,提升开发者的生产力和幸福度。现在,我们想知道如果所有这些都是必要的,那么该何时解决这些问题呢?
有时生命是黑白的
我经常听到有人说我们不应该过多的关注于“架构”,因为我们的应用很小并且很简单。虽然这个论调有一定的正确性,不过我们必须要记住一开始很小的项目最后会变得很大。如果不考虑这种情况,那么一旦发生状况,我们就会陷入到巨大的麻烦当中。在未知的水域中航行可不是个好做法,但我们必须要知道,泰坦尼克号在撞到冰山沉没时是在熟悉的航线中航行的。这种事情也会发生在我们的应用中。当事情变得无法控制时,我们必须要有勇气说不。
如果你打算改变,那么我推荐你阅读一下Olivier Gierke所写的“Whoops! Where did my architecture”(或是观看他在SpringOne2GX上关于这个项目的演讲)。但请注意,习惯的力量还是很强大的。
转自: http://www.xbnzj.com