簡體   English   中英

如何根據操作系統動態繼承?

[英]How to dynamically inherit depending on operating system?

我正在開發兩個操作系統。 每個都有一個特定的BaseClass實現。 我想抽象這些實現。 我的想法是使用兩個實現的接口,然后使用工廠模式返回特定於OS的類。 這看起來與類似。

但是,采用這種方法將需要我在構建應用程序之前指定應使用哪種實現,例如,通過保存OS名稱的常量(鏈接答案中的platform變量)。 對我來說,這似乎是一個糟糕的設計選擇。 還有另一種方法來定義要構建的操作系統嗎?

你不知道

這不是Java的工作方式。 Java程序不是為特定的目標系統編譯的,它們應該是可移植的並且可以在所有系統上工作。 請參閱可以在任何操作系統上運行JAR文件?

但是,如果您需要執行某些特定於操作系統的操作,則可以使用系統屬性來找出程序在運行時在哪個OS上運行。 然后,您可以使用此信息在某種工廠中選擇適當的實現,但這是運行時的決定。

查找操作系統的一些方法: 如何以編程方式確定Java的操作系統?

java將操作系統名稱存儲在其標准屬性中,因此以下調用應為您提供操作系統名稱:

System.getProperty("os.name")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM