我有两个类,A 和 B。B 知道 A,而 A 不知道 B。B 具有可以从 A 很好地设置的属性,尽管 A 和 B 之间没有共享继承。将很多时候我需要从 A 分配 B 的属性,但我正在寻找关于我应该放置该代码的位置的指针。
public class A
{
}
public class B
{
//constructor?
public B(A a)
{
//set b's properties from a
}
//factory method?
public static B FromA(A a)
{
B b = new B();
//set b's properties from a
return b;
}
//setter method?
public static void SetBFromA(B b, A a)
{
//set b's properties from a
}
//assignment method?
public void AssignFrom(A a)
{
//set b's properties from a
}
}
//static helper class?
public static class BHelper
{
public static B GetBFromA(A a)
{
B b = new B();
//set b's properties from a
return b;
}
public static void SetBFromA(B b, A a)
{
//set b's properties from a
}
}
如果有的话,以下哪些是常见的做法?根据他们的签名,他们中的任何一个都带有含义吗?例如,使用构造函数通常会表示 B 持有对传入的 A 的引用吗?这些是我正在考虑的考虑因素。
谢谢!
最佳答案
我会抛出一个替代方案:
public static B CreateFromA(A a) { }
这使用工厂语法,建议您可以在给定 A
的情况下生成 B
,但要避免任何看起来像转换的事情。
关于c# - 分配代码中的约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3344477/