目前,我有以下类(class)设计:
AnimalHandler(所有动物的基类)
TigerHandler 扩展 AnimalHandler、LionHandler 扩展 AnimalHandler、LeopardHandler 扩展 AnimalHandler 等等。
TigerHandler、LionHandler、LeopardHandler 等“拥有”Tiger、Lion、Leopard 等。
现在的问题是:TigerHandler、LionHandler、LeopardHandler 等都是相同的(它们具有相同的方法等),除了它们分别处理 Tiger、Lion、Leopard 等类。因此,如果我需要一个名为 Cheetah 的新动物组,我只需要复制任何 (Tiger|Lion|Leopard)Handler 并搜索并替换其“HAS A”类名称,如 Tiger、Lion、Leopard。
有没有一种方法(设计)可以使用,而不是像上面那样复制/创建新的 CheetahHandler?比如说,一个 GenericHandler 可以处理任何这些“HAS A”类(如 Tiger、Lion、Cheetah 等)。
最佳答案
如果您的处理程序所做的只是提供类型安全,而不执行其他任何操作,则可以使用泛型:
public class AnimalHandler<T extends Animal> {
private T theAnimal;
public T getTheAnimal() {}
// Etc
}
关于java - 类设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16293154/