如果我要製作一個單窗口Java程序,我發現自己正在做類似下面的事情。請注意,我傾向於像iOS開發那樣做很多事情。從Java中分離邏輯設計
+-------------------------------------------------------------------------------+
| |
| ExampleJFrame.java ExampleJPanel.java |
| | | |
| ExampleJFrameController.java -> ExampleJPanelController.java -> Component(s) |
| |
+-------------------------------------------------------------------------------+
我喜歡iOS標準的方式,並希望遵循這一點。這是我能得到的最接近的。我的問題是如果我正在做簡單的東西,如JFrame
,如添加JPanel
,設置標題,位置,大小等,我應該(1)子類JFrame
哪裏,我只會有ExampleJFrame
,並有對象做上述事情本身或(2)我應該只有ExampleJFrameController
這將創建一個新的JFrame
並設置它的標題和什麼?
編輯:
選擇第二個選項,如果我想繼承ExampleJFrameController
,父對象將設置JFrame
的知名度true
之後的子對象可以用它做任何事情。所以也許我忘了添加一個選項3(這在某種程度上是由「圖形」隱含的):既有ExampleJFrame
也有ExampleJFrameController
。 ExampleJFrame would set its own size and location and title and
ExampleJFrameController would set its visibility. Then lies a problem: if
ExampleJFrame should know about
ExampleJPanel and
ExampleJFrameController should know about
ExampleJPanelController , how would I connect the
ExampleJPanelController to its
ExampleJPanel`?或者我錯過了一些可以解決這個問題的細節?
在這種情況下繼承JFrame的方式也是不好的OOP風格,而不是在內部使用JFrame基本上與擴展Thread的人相同的問題而不是實現Runnable – Voo
如果你需要控制如果你需要從另一個控制一個'JFrame',那麼你需要上面的另一個控制器類(至少要保持這個類的''JFrame'')你想要的結構) – Jon
我的評論太大了看看我的編輯。 –