在运行时,可能会创建 TableA 或 TableB 或 TableC。
public class TableA {
public void methodA() {
doSomethingA();
}
public void methodB() {
doSomethingB();
}
}
public class TableB extends TableA {
@Override
public void methodA() {
}
protected void methodC() {
}
}
public class TableC extends TableA {
@Override
public void methodB() {
}
public void methodD() {
}
}
我有另一个名为 TableX 的表。
public class TableX extends TableA {
public void methodX() {
}
public void methodY() {
}
}
现在我想要 TableX 功能-methodX(), methodY() 适用于 TableB, TableC
我不能取出 methodX()、methodY() 并放入 TableA,因为这些是 TableX 特定的模块功能。
所以现在在运行时可能会创建 TableA、TableB、TableC、TableX(TableA)、TableX(TableB)、TableX(TableC)。我可以应用任何设计模式,这样无论创建什么Table,只要它是从TableA扩展而来的,TableX也可以支持它。