程序中有一个类AClass(负责实现数据协议A),实例化对象aClass,在程序中会用到AClass的静态成员和aClass方法。后来因为数据协议变动,新写了一个类BClass(负责实现数据协议B),BClass和Aclass具有相同的成员变量和成员方法,当时为了省时间和不修改主程序,就直接把BClass的名称改成了AClass,将AClass的名称改为AClass0。现在项目要求程序能够在数据协议A和B之间自由切换。请问怎么做最省事?能否实现在基本不修改主程序的情况下,实现类名"AClass"指向不同的类(AClass或BClass)?
给这两个类抽象一个接口,两个类都实现这个接口。主程序使用接口类型,既可以传入a,也可以传入b
应用适配器模式。
写一个接口,接口中定义协议的方法。
写两个类classA和classB,都继承接口,并分别用自己的协议来实现接口。
interface IProtocol
{
}
class classA:IProtocol
{
}
class classB:IProtocol
{
}
应用
void main()
{
IProtocol pro =new classA();或者
IProtocol pro =new classB();
}
或者同名类通过设置传递的参数不一样来实现。