小弟在看一个系统,里面有一个关于数据库事务的抽象工厂,这个工厂返回的是“Web数据库事务”还是“本地数据库事务”。
在这个事务抽象工厂系统中的文件有:
1、AbstractTransactionThread.cs   //一个抽象类 AbstractTransactionThread 的摘要说明。
2、ITransactionContext.cs   //一个接口  ITransactionContext 的摘要说明。
3、ITransactionThread.cs    //一个接口   ITransactionThread 的摘要说明。
4、TransactionContext.cs    //一个实体类  事务上下文,里面有构造函数,析构函数,当前事务,数据库连接,提交事务,回归事务,释放对象等方法。
5、TransactionThread.cs   //一个密封类,继承自AbstractTransactionThread.cs ,返回一个Stack 。TransactionThread 的摘要说明。
6、WebTransactionThread.cs  //一个密封类和TransactionThread.cs平行,继承自AbstractTransactionThread.cs ,返回一个Stack 。WebTransactionThread 的摘要说明。
7、TransactionThreadFactory.cs   //抽象工厂,返回“WebTransactionThread”或者是“TransactionThread”看看小弟的分析对不:
“ITransactionContext”定义了Web事务的实现方法,“TransactionContext”对里面的方法做了实现。
“ITransactionThread”定义了线程事务的实现方法,这接口缺少具体的实现类。
“TransactionThread”和“WebTransactionThread”继承自“AbstractTransactionThread”分别返回了上面两个方法的实例。
“TransactionThreadFactory”根据“应用程序默认配置项”,结合“AbstractTransactionThread”,返回对象的实例大侠们猜猜看看,小弟说的对不?小弟还有个疑问,“WebTransactionThread”返回的是“Stack”,它是怎样被“TransactionContext”利用的。还有“Stack”,是什么?小弟还会把每个“.cs”文件贴出来,请大家帮忙分析,请关注哦,这个“事务抽象工厂”