我正在尝试学习接口,并想尝试以下方法:
假设我有一个名为ICustomer的接口,它定义了基本属性(UserID,UserName等).现在,我有多个具体的类,如ProductA_User,ProductB_User,ProductC_User.每个人都有不同的属性,但他们都是ICustomer,因为他们都是客户.
我想在一个名为MemberFactory的工厂类中调用一个共享方法,并告诉它新用户,我只是给它一个我想要的枚举值的参数.由于每个具体类都不同但实现了ICustomer,我应该能够返回一个实现ICustomer的实例.但是,我不确定如何在工厂类中执行此操作,因为我的返回类型是ICustomer.
你所要做的就是像这样创建你的对象:
class ProductA_User : ICustomer
{
//... implement ICustomer
}
class ProductB_User : ICustomer
{
//... implement ICustomer
}
class ProductC_User : ICustomer
{
//... implement ICustomer
}
class MemberFactory
{
ICustomer Create(ProductTypeEnum productType)
{
switch(productType)
{
case ProductTypeEnum.ProductA: return new ProductA_User();
case ProductTypeEnum.ProductB: return new ProductB_User();
case ProductTypeEnum.ProductC: return new ProductC_User();
default: return null;
}
}
}
Run Code Online (Sandbox Code Playgroud)