架构,改善程序复用性的设计~第二讲 什么应该提取出来,什么应该保留

在进行项目整体架构设计时,我们应该明确知道哪些项目是可以被重复再利用的,而哪些项目是与领域模块关系密切的,对于后者我们是应该在解决方案中保留的,而前者则是应该提取出来的。

在一个完整的解决方案中,应该是由“公用的类库”,“核心的项目基础层”和“与业务领域关系密切个性项目组”组成的,对于我开会的那个项目来说,也是遵循这样一个原则:

将与领域和项目无关的项目进行抽象,形成一个最基础的层,称为Project.Common

将与架构模式有关,而与领域无关的项目,形成一个架构模式核心层,称为Project.Core

将与指定领域有关的,个性化业务组成的代码,叫做领域层,它的名称由项目含义确定

 

在这篇文章里,我们主要是找到一个项目中,可以被抽象和被重复再利用的点,它可以是个方法,也可能是个类,再可以是个接口,一个项目等,在架构领域时,在代码重复再利用方法,我认为应该是以一个项目为单位的,一个项目里,可能包括的是一些可以被再利用的类的集合。恩,就是这样的。

对于电子商务网站,它的解决方案架构可能是:

ABC公司的电子商备平台架构

ABC_WEB (MVC or WebForm)

ABC_Service

ABC_Data

ABC_Entity

使用所有电子商务类网站的核心代码:

EC_Web

EC_Entity

EC_Service

EC_Data(可以被多个数据库公用的一些dbml模块)

使用通用核心代码:

WEB.Commons

Entity.Commons

Data.Commons

最底层才是公用类库

VCommons

Standard

VLogs

等等

 

posted @ 2012-05-06 23:18  张占岭  阅读(...)  评论(...编辑  收藏