您的位置:首页 > 其它

两种实现模式,还是选择2,少一层继承。

2013-01-30 11:11 323 查看
 public class Model


[code]{


 


}


 


 


public interface IRepository<TEntity>


{


/// <summary>


/// Gets entity by key.


/// </summary>


/// <typeparam name="TEntity">The type of the entity.</typeparam>


/// <param name="keyValue">The key value.</param>


/// <returns></returns>


TEntity GetByKey(object keyValue);


}


 


public interface IRepository


{


/// <summary>


/// Gets entity by key.


/// </summary>


/// <typeparam name="TEntity">The type of the entity.</typeparam>


/// <param name="keyValue">The key value.</param>


/// <returns></returns>


TEntity GetByKey<TEntity>(object keyValue) where TEntity : class;


}


 


 


public class BaseRepository   : IRepository


{


 


public TEntity GetByKey<TEntity>(object keyValue) where TEntity : class


{


throw new NotImplementedException();


}


}


 


public class BaseRepository<T> : BaseRepository, IRepository<T> where T : class


{


 


public T GetByKey(object keyValue)


{


return this.GetByKey<T>(keyValue);


}


}


 


public class BaseRepository2<T> : IRepository, IRepository<T> where T : class


{


 


public T GetByKey(object keyValue)


{


return this.GetByKey<T>(keyValue);


}


 


public TEntity GetByKey<TEntity>(object keyValue) where TEntity : class


{


throw new NotImplementedException();


}


}


 


 


 


 


 


public interface IBiz


{


void Get();


}


 


class bbb : BaseRepository<Object>, IBiz


{


 


public void Get()


{


this.GetByKey(1);


this.GetByKey<Model>(1);


}


}


 

[/code]

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: