平时少写文章,不知道从何入手,先让我们看下代码吧。
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可以更好规范类的行为。当你在修改和维护时都有极大的方便。 
|