代碼之美:利用構造方法實現模塊的解耦
解耦,不僅只是對程序的擴展性而言,它可能還是你使用你的程序從一個層面向另一個層面提高的基礎,請認真對待這個詞語“解耦”。
我相信,它將會成為與“SOA”,“分布式”,“云計算”,“KV存儲”,“高并發”一樣的熱門的東西,我確信這點。以后,我將會繼續關注這個詞語“解耦”。
今天主要是講”代碼之美“的一個話題,利用構造方法使你的對象進行一個可供注入的接口,這就是IOC里面注入的一種方式,即”構造器注入“。
- /// <summary>
- /// 統一實體
- /// </summary>
- public class EntityBase
- {
- }
- /// <summary>
- /// 統一操作
- /// </summary>
- public interface IRepository
- {
- void Insert(EntityBase entity);
- }
- /// <summary>
- /// 用戶操作實現
- /// </summary>
- public class UserRepository : IRepository
- {
- #region IRepository 成員
- public void Insert(EntityBase entity)
- {
- throw new NotImplementedException();
- }
- #endregion
- }
而在構造方法去使用它的時候,一般代碼是這樣:
- public abstract class IndexFileBase
- {
- IRepository _iRepository;
- public IndexFileBase(IRepository iRepository)
- {
- _iRepository = iRepository;
- }
- /// <summary>
- /// 根據實現IRepository接口的不同,Insert邏輯也是多樣的
- /// </summary>
- /// <param name="entity"></param>
- public void Insert(EntityBase entity)
- {
- this._iRepository.Insert(entity);
- }
上面的代碼,很好的實現了new對象的松耦合,這使得它具有通用的特性,一般我們在設計通用功能時,經理使用這樣方式。
原文鏈接:http://www.cnblogs.com/lori/archive/2012/07/09/2582940.html