次のパターンで3層のWinFormアプリケーションを作成しています。
--MY BASE CLASS:DALクラス
public class Domain
{
public string CommandName = string.Empty;
public List<Object> Parameters = new List<Object>();
public void Save()
{
List<Object> Params = this.SaveEntity();
this.ExecuteNonQuery(CommandName, Params.ToArray());
}
public void Delete()
{
List<Object> Params = this.DeleteEntity();
this.ExecuteNonQuery(CommandName, Params.ToArray());
}
public void Update()
{
List<Object> Params = this.UpdateEntity();
this.ExecuteNonQuery(CommandName, Params.ToArray());
}
protected virtual List<Object> SaveEntity()
{
return null;
}
protected virtual List<Object> UpdateEntity()
{
return null;
}
protected virtual List<Object> DeleteEntity()
{
return null;
}
public int ExecuteNonQuery(string SqlText, params object[] Params)
{
/*
* Code block for executing Sql
*/
return 0;
}
}
DLLクラスを継承する私のビジネスレイヤークラス
-マイチルドレンクラス:BLLクラス
public class Person : Domain
{
public string name
{
get;
set;
}
public string number
{
get;
set;
}
protected override List<object> SaveEntity()
{
this.Parameters.Add(name);
this.Parameters.Add(number);
return this.Parameters;
}
}
--USE これは私の基本クラスを使用する方法です
void Main()
{
Person p = new Person();
p.name = "Vijay";
p.number = "23";
p.Save();
}
質問
- これは私がフォローしている正しいアーキテクチャですか?基本クラスをシングルトンとして作成する機会はありますか?
- 他にバッターアーキテクチャはありますか?
- 機能を拡張するために従うことができるパターンはありますか?
親切に提案します。