【发布时间】:2018-10-23 11:51:53
【问题描述】:
我正在开发两个操作系统。每个都有BaseClass 的特定实现。我想抽象出这些实现。我的想法是使用两个实现都实现的接口,然后使用工厂模式返回操作系统特定的类。这看起来类似于this。
但是,采用这种方法需要我在构建应用程序之前指定应该使用哪个实现,例如通过一个包含操作系统名称的常量变量(链接答案中的platform 变量)。这对我来说似乎是一个糟糕的设计选择。
是否有另一种方法来定义要构建的操作系统?
【问题讨论】:
-
“……采用这种方法需要我在构建应用程序之前指定应该使用哪个实现……”为什么?为什么不能在代码中包含这两种实现,并编写单独的代码,根据
os.name系统属性在运行时决定使用哪一种?
标签: java inheritance cross-platform