我目前正在使用IKVM来访问 C# .Net 项目中的大型 Java 库。库入口点是一个单例,从那里我可以创建对象并设置对象属性。
我目前已经围绕这个单例创建了一个 C# Facade Pattern,并通过这个 Facade 进行对象创建和参数传递。Facade 中的功能都是静态的。Facade Pattern 只包含静态函数是正常的,还是我刚刚创建了一个价值很小的额外层?
原始 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;
}
}