Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不重复地扩展多个Java类_Java_Design Patterns - Fatal编程技术网

不重复地扩展多个Java类

不重复地扩展多个Java类,java,design-patterns,Java,Design Patterns,我有一个Java类,可以扩展两个第三方类中的任何一个,我无法更改。我可以在编译时选择这两种实现中的任何一种,除了“extends”声明之外,我的类没有任何更改。不幸的是,我需要选择在运行时使用哪个实现,而不是在编译时。在运行时选择这两个实现而不复制整个派生类的最佳方法是什么?听起来您需要一个 战略模式(也称为 策略模式)是一种特殊的策略 软件设计模式 可以在运行时选择算法 因此,Java类应该包含对要使用的两个类之一的引用,以及到该实现的桥接。可以在运行时选择您选择的实现。问题描述中不清楚,但是

我有一个Java类,可以扩展两个第三方类中的任何一个,我无法更改。我可以在编译时选择这两种实现中的任何一种,除了“extends”声明之外,我的类没有任何更改。不幸的是,我需要选择在运行时使用哪个实现,而不是在编译时。在运行时选择这两个实现而不复制整个派生类的最佳方法是什么?

听起来您需要一个

战略模式(也称为 策略模式)是一种特殊的策略 软件设计模式 可以在运行时选择算法


因此,Java类应该包含对要使用的两个类之一的引用,以及到该实现的桥接。可以在运行时选择您选择的实现。问题描述中不清楚,但是如果您的两个第三方类实现了一个公共接口,那么您的Java类很可能会实现这个接口,您可以直接映射到引用的第三方类。

听起来您需要一个公共接口

战略模式(也称为 策略模式)是一种特殊的策略 软件设计模式 可以在运行时选择算法


因此,Java类应该包含对要使用的两个类之一的引用,以及到该实现的桥接。可以在运行时选择您选择的实现。从您的问题描述中不清楚,但是如果您的两个第三方类实现了一个公共接口,那么您的Java类很可能会实现这个接口,您可以直接映射到引用的第三方类。

因此您有两个具有完全相同方法签名的第三方类,但是没有公共接口?所以有两个第三方类具有完全相同的方法签名,但没有公共接口?