zoukankan      html  css  js  c++  java
  • 两种实现模式,还是选择2,少一层继承。

     public class Model
        {
     
        }
     
     
        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);
            }
        }
     
  • 相关阅读:
    东南亚互联网创业哪些领域比较有前景?
    2021最新最实用.NET Core笔试题附答案
    2021UpdateC#.NET笔试题基础篇
    Ubuntu下 安装MiniGUI
    MiniGUI 如何显示繁体字
    Android 基础一 TextView,Style样式,Activity 传值,选择CheckBox 显示密码
    【玩转开源】BananaPi R2 —— 第一篇 Openwrt安装
    JAVA面对对象(二)——继承、方法的覆写
    JAVA面对对象(一)——封装
    JAVA关键字及作用
  • 原文地址:https://www.cnblogs.com/zbw911/p/2882634.html
Copyright © 2011-2022 走看看