平时少写文章,不知道从何入手,先让我们看下代码吧。
public interface IBusiness
{
HFSoft.Data.DomainObjects.ObjectManager DataUnit
{
get;
set;
}
void RunBusiness();
}这是一件业务规则,由她来规范所有业务的执行,当定义了这样一个规范后,所有的业务类都有了一下统一的行为,在调用,修改和维护都带来极大的方便,因为所有业务的行为都是固定在某一方法上。
为了方便使用定义IBusiness的Adapter
abstract public class BusinessBase : IBusiness
{
public BusinessBase()
{
mDataUnit = new HFSoft.Data.DomainObjects.ObjectManager(new HFSoft.Data.SqlClient.SqlSession());
mDataUnit.DataSession.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
}
public HFSoft.Data.DomainObjects.ObjectManager DataUnit
{
get
{
return mDataUnit;
}
set
{
mDataUnit = value;
}
}
public virtual void RunBusiness()
{
}
private HFSoft.Data.DomainObjects.ObjectManager mDataUnit;
}
再从BusinessBase 派生出一个Template
abstract public class SearchBusiness : BusinessBase
{
protected abstract System.Type EntityType
{
get;
}
protected HFSoft.Data.DataObjects.FilterCollection Filters
{
get
{
return mFilters;
}
set
{
mFilters = value;
}
}
private HFSoft.Data.DataObjects.FilterCollection mFilters = new HFSoft.Data.DataObjects.FilterCollection();
}
从SearchBusiness 派生出具体业务类
根据USERID获取用户信息
public class GetUserByID : SearchBusiness
{
public string UserID
{
get
{
return mUserID;
}
set
{
mUserID = value;
}
}
public BBS.Library.Entitys.User UserItem
{
get
{
return mUserItem;
}
set
{
mUserItem = value;
}
}
private string mUserID;
private BBS.Library.Entitys.User mUserItem;
protected override System.Type EntityType
{
get
{
return typeof(Entitys.User);
}
}
public override void RunBusiness()
{
Filters.EqualTo(Entitys.User.F_UserID,UserID);
this.UserItem = DataUnit.GetObject(EntityType,Filters) as Entitys.User;
base.RunBusiness ();
}
}
---------------------------------------------------------------------
获取验证后的用户信息
public class UserLogin : GetUserByID
{
public string UserPWD
{
get
{
return mUserPWD;
}
set
{
mUserPWD = value;
}
}
private string mUserPWD;
public override void RunBusiness()
{
Filters.EqualTo(Entitys.User.F_UserPWD,UserPWD);
base.RunBusiness ();
}
}
当类有了一个统一的规则之后,那修改和维护都相对简单,因为你知道他错在那里。
有一本书时说到“它把函数层面的任务提升到了类的层面。这简单值是对面向对象的亵渎”
我自己感觉并不是这样,当类是单一职责的情况,Comman可以更好规范类的行为。当你在修改和维护时都有极大的方便。
本文地址:http://com.8s8s.com/it/it44108.htm