如何对此代码进行分解

时间:2016-06-14 11:52:54

标签: c# asp.net factorization

我在MVC C#项目上工作,我有一些总是相同的类。我想要做的是找到一种方法来分解代码,以便我可以在每次需要时快速实现它。

以下是其中一个类

的示例
public class FeedbackManager
{
   public List<Feedback> List = new List<Feedback>();
   public FeedbackManager(){}
   public List<Feedback> GetAll() { ... }
   public Feedback GetById(string id) { ... }
   public void Edit(string id, Feedback item) { ... }
   public void Delete(string id) { ... }
   public void Add(Feedback item) { ... }
   public void Serialize() { ... }
   public static FeedbackManager DeSerialize() { ... }
}

我尝试做的是创建一个界面并用“对象”更改所有“反馈”,这样当我实现界面时,我用“反馈”更改“对象”,但它没有成功。如果你有一些技巧来实现这种因素分类我会感兴趣

2 个答案:

答案 0 :(得分:4)

public interface IManager<T>
{
   public List<T> GetAll();
   public T GetById(string id);
   public void Edit(string id, T item);
   public void Delete(string id);
   public void Add(T item);
   public void Serialize();
}

public abstract class AbstractManager<T>
{
   public List<T> List;

   protected AbstractManager(){
        List = new List<T>();
   }

   public abstract List<T> GetAll();
   public abstract T GetById(string id);
   public abstract void Edit(string id, T item);
   public abstract void Delete(string id);
   public abstract void Add(T item);
   public abstract void Serialize();
}

答案 1 :(得分:-2)

根据您对答案的#1评论,这听起来就像是一个很好的泛型用例:

public interface IManager<T>
{
   public List<T> List = new List<T>();
   public List<T> GetAll() { ... }
   public T GetById(string id) { ... }
   public void Edit(string id, T item) { ... }
   public void Delete(string id) { ... }
   public void Add(T item) { ... }
   public void Serialize() { ... }
}

这些方面的东西?