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