我正在製作一個C#應用程序。該應用程序有兩個類和多個方法。在編寫代碼時,我偶然發現了一個問題。我在兩個類中使用相同的兩個變量(XList和YList)和一個方法。可能我需要使用此代碼更多的類。所以我創建了一個重複問題。下面是我的代碼一個簡單的版本:如何避免重複?
public class A {
private testEntities db = new testEntities();
public List<int> XList = new List<int>();
public List<int> YList = new List<int>();
public void GetAllInfo()
{
// Get the data from a database and add to a list
XList = db.Table1.ToList();
YList = db.Table2.ToList();
}
public void DoStuff()
{
// Do Stuff with XList and YList
}
}
public class B {
private testEntities db = new testEntities();
public List<int> XList = new List<int>();
public List<int> YList = new List<int>();
public void GetAllInfo()
{
// Get the data from a database and add to a list (the same as in class A)
XList = db.Table1.ToList();
YList = db.Table2.ToList();
}
public void DoDifferentStuff()
{
// Do ddifferent stuff with XList and YList then in class A
}
}
我的問題是什麼是解決這一問題的重複的最好方法?
經過一番研究,我發現我可以用繼承或組合來解決這個問題。我還讀到,人們選擇合成而不是繼承。所以我寫了以下代碼來解決重複問題:
public class DataPreparation
{
private testEntities db = new testEntities();
public List<int> XList = new List<int>();
public List<int> YList = new List<int>();
public void GetAllInfo()
{
// Get the data from a database and add to a list
XList = db.Table1.ToList();
YList = db.Table2.ToList();
}
// Implement other methods
}
public class A
{
public void MethodName()
{
DataPreparation dataPreparation = new DataPreparation();
dataPreparation.GetAllInfo();
UseDataX(dataPreparation.XList);
UseDataY(dataPreparation.YList);
// Implementation UseDataX() and UseDataY()
}
}
public class B
{
public void MethodName()
{
DataPreparation dataPreparation = new DataPreparation();
dataPreparation.GetAllInfo();
VisualizeDataX(dataPreparation.XList);
VisualizeDataY(dataPreparation.YList);
// Implementation VisualizeDataX() and VisualizeDataY()
}
}
正如你所看到的,我做了一個處理從數據庫獲取數據的類。而且類A和B使用DataPreparation類。 但這是解決重複的最佳方法嗎?或者我應該使用繼承還是不同的東西?
開始點:您計劃如何測試您的方法? – tym32167