我有两个A和B类,其中有两个属性' prop1'和' prop2'是常见的。我怎样才能实现构图。可能是C类可以具有这些共同属性。它是一种关系而不是一种关系。
public class A {
public int Prop1{get;set;}
public int Prop2 {get; set;}
public int Prop3{get;set;}
public int Prop4 {get; set;}
}
public class B {
public int Prop1{get;set;}
public int Prop2 {get; set;}
public int Prop5{get;set;}
public int Prop6 {get; set;}
}
如果我有一个界面说C并且在其中有这两个常见属性会将其归类为组合吗?像
这样的东西inferace C {
int Prop1{get;set;}
int Prop2 {get; set;}
}
public class A : C
{
}
public class B : C
{
}
提前致谢。
答案 0 :(得分:0)
实现接口不是组合,尽管这是避免重复代码的另一种方法。
要使用合成执行此操作,您应该使用Prop1和Prop2创建一个新类,并将此类的实例作为ClassA和ClassB的属性。
public class CompositeKey
{
public int Prop1 { get; set; }
public int Prop2 { get; set; }
}
public class A
{
public CompositeKey Key { get; set; }
public int Prop3 { get; set; }
public int Prop4 { get; set; }
}
...
这比使用接口更灵活,因为您可以在运行时将任何子类型的CompositeKey分配给您的属性,但是您应该这样做的主要原因是因为类A 具有复合键,您不希望将您的类用作复合键。