天天看點

當為業務邏輯層(BLL,Service)提供基類之後,程式變得了更加面向對象了

     /// <summary> 

    /// 業務層抽象基類 

    /// </summary> 

    public abstract class ServiceBase 

    { 

        /// <summary> 

        /// 通用消息 

        /// </summary> 

        protected VMessage VMessage { get; set; } 

        /// 資料層統一操作對象執行個體 

        /// 避免派生類直接new對象 

        /// <typeparam name="TEntity"></typeparam> 

        /// <returns></returns> 

        protected IRepository<TEntity> LoadRepository<TEntity>() where TEntity : class,Entity.IEntity 

        { 

            return new Repository<TEntity>(); 

        }

    }

子類在完成一個業務功能時,就變成了這樣:

public Entity.VMessage AddCommon_BasePropValue(Common_BasePropValue entity) 

            VMessage = new Entity.VMessage(); 

            try 

            { 

                if (Base.LoadRepository<Common_BasePropValue>().GetModel().Where(i => i.Name == entity.Name).Count() > 0) 

                { 

                    VMessage.IsComplete = false; 

                    VMessage.AddItem("名稱重複"); 

                } 

                else 

                    base.LoadRepository<Common_BasePropValue>().Insert(entity); 

                    VMessage.IsComplete = true; 

            } 

            catch (Exception ex) 

                VMessage.AddItem(ex.Message); 

             } 

            return VMessage; 

這樣不需要在具體業務類中生成新對象,直接使用基類的方法就可以了,結構清晰,操作統一性好。