【发布时间】:2012-11-29 05:59:21
【问题描述】:
以场景为例
BaseA -> SubB -> SubSubC
说明:SubSubC 类继承了 SubB 类。 SubB类继承BaseA类
BaseA -> SubD -> SubSubE
说明:SubSubE 类继承 SubD 类。 SubB类继承BaseA类
所以..上..
因此,有许多类的祖父类为 BaseA 。 BaseA 类具有所有方法共有的一些属性。例如:CustomerID、LastLogin、UniqueName 等。
这就是我正在使用的服务中类的设计方式。
我的疑问是在调用服务方法时,所有方法都需要任何 SubSub 类的参数。谁能告诉我,有什么办法可以在一个地方为 BaseA 的属性赋值,这样在创建 SubSub 对象时我就不需要每次都填充基本属性?
我使用 C# 作为我的语言。
代码:
public class BaseA
{
public int CustomerId { get; set; }
public string UniqueName { get; set; }
}
public class SubB : BaseA
{
}
public class SubSubC : SubB
{
}
public class SubD : BaseA
{
}
public class SubSubE : SubD
{
}
public class MyMain
{
public void SendRequestToService1()
{
(new MyServiceObject()).ServiceMethod1(new SubSubC());
}
public void SendRequestToService2()
{
(new MyServiceObject()).ServiceMethod2(new SubSubE());
}
}
在上面的代码中,在 SendRequestToService1 和 SendRequestToService2 中,我需要初始化基类属性 CustomerId 和 UniqueName。 例如:
(new SubSubC(){ CustomerId=2, UniqueName="XXBB" });
如果有很多方法,我需要每次为它们各自的类初始化这些属性。有没有一种方法可以在一个地方初始化基本属性 CustomerId 和 UniqueName,以便继承类(此处为 SubSubC,SubSubE)在创建对象时无需初始化?
【问题讨论】:
-
不确定问题是什么。看起来像“我想在一个函数中初始化
BaseA类实例的属性,我可以写吗?”...演示您面临的问题的示例代码会有所帮助。
标签: c# oop design-patterns inheritance