gpt4 book ai didi

java - 如何将不共享相同接口(interface)且不可修改的类分组?

转载 作者:行者123 更新时间:2023-11-30 04:08:09 24 4
gpt4 key购买 nike

我有几个遗留类,它们没有公共(public)接口(interface)或父类(super class),但具有相同的方法。大多数这些方法都受到保护。

无论如何,我想编写一个在这些类上始终执行相同例程的服务,从而始终调用相同的方法,无论它是什么类。

通常我会给这些类一个公共(public)接口(interface),但我无法修改遗留类,尽管我必须使用它们。

有机会将他们分组吗?也许是我不知道的设计模式?

class classA {
protected String getData() {
return "I'm class A";
}
}

class classB {
protected String getData() {
return "I'm class B";
}
}



class MyGeneralService {

void execute(<ClassA or B> clazz) {
//do something
clazz.getData();
//do something
//call another methods that are common to both classes
}
}

最佳答案

这听起来正是 Adapter Pattern 的问题类型。旨在解决。

本质上,用关联的适配器类包装每个遗留类,该类确实实现了一个公共(public)接口(interface)。适配器类应该简单地转发适当的方法调用。

注意:您想要从外部世界调用的方法受到保护这一事实很奇怪。适配器模式不会帮助您调用以前无法调用的方法(当然,除了通过反射)。

关于java - 如何将不共享相同接口(interface)且不可修改的类分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20266536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com