現在、IKVMを使用して、C# .Net プロジェクト内の大規模な Java ライブラリにアクセスしています。ライブラリのエントリ ポイントはシングルトンであり、そこからオブジェクトを作成し、オブジェクトのプロパティを設定できます。
私は現在、このシングルトンの周りに C# Facade パターンを作成しており、この Facade を介してオブジェクトの作成とパラメーターの受け渡しを行っています。Facade 内の関数はすべて静的です。Facade パターンに静的関数のみが含まれているのは正常ですか?それとも、価値のほとんどない追加のレイヤーを作成しただけですか?
元の Java コードは次のようになります。
Code code = Singleton.Instance.CreateCode();
code.SetExtension("12345");
code.SetId("1");
SubCode subCode = Singleton.Instance.CreateSubCode();
subCode.SetRoot("6789");
subCode.SetId("2");
code.SetSubCode(subCode);
単純化された (エラー チェックなしの) C# バージョンは次のようになります。
public static FacadePattern
{
public static Code CreateCodeWithSubCode(string extension, string codeId, string root, string subCodeId)
{
Code code = Singleton.Instance.CreateCode();
code.SetExtension(extension);
code.SetId(codeId);
SubCode subCode = Singleton.Instance.CreateSubCode();
subCode.SetRoot(root);
subCode.SetId(subCodeId);
code.SetSubCode(subCode);
return code;
}
public static CreateCodeForHP(string extension, string codeId)
{
Code code = Singleton.Instance.CreateCode();
code.SetExtension(extension);
code.SetId(codeId);
code.SetUse(com.org.vocabulary.HP);
return code;
}
}