现在的位置: 首页 > 综合 > 正文

我的项目的架构(四)

2012年04月03日 ⁄ 综合 ⁄ 共 2574字 ⁄ 字号 评论关闭

    这一章是项目架构中的重点.主要说的是builder这个类.这个类用到了建造者模式.我在项目中把它作为整个项目的逻辑控制类.它向上提供了一个方法,向下起到了各个具体业务类的流程控制.同时考虑到扩展性,它实现为一个接口:

1     public interface IBuilder
2     {
3         BuilderResult Execute();
4     }

   可以看到调用builder的地方只有一句语句:

1 BuilderResult Execute();

 

  下面是这个函数的实现

 1         public virtual BuilderResult Execute()
 2         {
 3             string ErrMessage=string.Empty ;
 4             BuilderResult result=new BuilderResult();
 5             try
 6             {                
 7                 result=beforExecute();
 8                 if (State.Success ==result.ResultState )
 9                 {
10                     result=TranTableExecute();
11                 }
12                 else
13                 {
14                     if (State.Error ==result.ResultState)
15                     {
16                         result.WriteLog (log);
17                     }
18                 }
19             }
20             catch
21             {
22                 throw;
23             }
24             return result;
25         }

  调用接口函数:

1         protected bool ValidAskFileName(out string ErrMessage)
2         {
3             if (null==tran)
4                 tran=CreateTran();
5             return tran.ValidAskFileName (out ErrMessage);
6         }

  调用接口函数2:

 1         /// <summary>
 2         /// 执行业务类
 3         /// </summary>
 4         private TranResult ExecuteTran()
 5         {
 6             TranResult result=null;
 7             try
 8             {
 9                 detail.TranDataTable =tempTable;
10                 
11                 result=tran.CheckValid();
12                 if (TranState.Success ==result.ResultState)
13                 {
14                     result =tran.ImportData();
15                 }
16             }
17 //            catch(Exception ex)
18 //            {
19 //                throw new TranException (ex.Message,ex);
20 //            }
21             finally
22             {
23                 //报告消息,完成一笔数据
24                 //OnRateReport (new RateReportEventArgs(Convert.ToInt32 (SR.ReportOfDataExcute)));
25                 result.WriteLog (tempTable,log);
26                 tempTable.Clear ();
27             }
28             return result;
29         }

  在这个函数中, builder起到了控制业务逻辑的作用,当然其中的业务类也是由接口实现的.

  在这里,我主要想就分层说说我的看法:

  为了能够更有效的对企业中的各种逻辑进行组织,我们使用层技术来实现企业应用。层技术在计算机领域中有着悠久的历史,计算机的实现中就引用了分层的概念。TCP/IP的七层协议栈也是典型的分层的概念。分层的优势在于:

  上层的逻辑不需要了解所有的底层逻辑,它只需要了解和它邻接的那一层的细节。我们知道TCP/IP协议栈就是通过不同的层对数据进行层层封包的,
不同层间的耦合度明显降低。通过严格的区分层次,大大降低了层间的耦合度。

  某一层次的下级层可以有不同的实现。例如同样的编程语言可以在不同的操作系统和不同的机器中运行。

  同一个层次可以支持不同的上级层。TCP协议可以支持FTP、HTTP等应用层协议。

  在这个项目中,我主要的思想就是利用了分层的思想,因为有了接口,分层的目的在实现上可以很容易达到.

抱歉!评论已关闭.