我是面向對象編程的新手。我正在開發一家雜貨店的軟件。雜貨店有客戶,客戶有地址和訂閱。所有這些在應用程序中都是不同的類。 我有點困惑,應該在哪個類中創建哪種方法,以及如何決定這個方法。 Like viewSubscription()應該是Subscription類或Customer類的一部分。 modifyCustomer()應該是Customer類或Store類的一部分。如何決定課程中的方法
回答
面向對象編程的一個想法是將事物分組在一起,這是有意義的。在你的例子中,因爲他們正在處理與客戶相關的信息,所以我可能會將這兩種方法放在Customer類中。
方法是行爲,變量是狀態。
什麼可以訂閱?從什麼是製造的懷疑?
Suscription cant查看本身,誰將查看訂閱?一個客戶?
一個懷疑應該是一個類,但是POJO,它是一個州的集合。客戶可以看到這些狀態。
OOP可以很容易地分解複雜的問題。你可能想要坐下來做一個你的類與你的類將包含的數據之間關係的模式。這將變得很明顯哪些方法應該去。
爲什麼要查看訂閱應該是訂閱的成員?
總是問你自己這個簡單的問題:查看訂閱什麼?你想做什麼行動。
我打賭你想查看一個客戶的訂閱!使viewSubscription成爲客戶的一種方法! customer1.viewSubscription()
查看UML和OCL。他們會幫助你塑造你的想法。
只是一個概述:的對象代表了現實生活中的實體可以說,例如汽車,A車有一定的屬性,如它有輪子,一個方向盤,變速箱以及更多的同樣的方式,它有一些行爲,如向前移動,左轉,左轉,停止。 上面提到的所有與汽車相關的東西都與面向對象的編程方法相關,看起來像:我們創建一個類汽車和屬性(車輪,轉向,變速箱等)被定義爲該類中的變量,而行爲(向前移動,左轉,右轉)被定義爲該類別的功能。關於面向對象的規則並沒有硬性規定,您只需使其在邏輯上感覺爲真實生活儘可能例如在您的情況下訂閱班級擁有與訂閱有關的所有信息,並且客戶已訂閱,所以viewSubscription()
方法應該進入客戶作爲專用字段的類,因爲它應該獲取並顯示與特定客戶相關的訂閱信息。 modifyCustomer()
,因爲它涉及到修改Customer類的數據字段,所以這也將進入客戶類,因爲字段值的所有修改都應該在包含字段的類內完成。
- 1. 如何從當前課程中的其他課程調用方法。 AS3
- 2. 如何使用CSS定位課程中的課程?
- 3. 如何動態解決課程
- 4. 課程課程特定日期特定課時無課程
- 5. 請解釋課程方法
- 6. 如何在不同的課程中使用方法?
- 7. 課程中的NoMethodError#編輯未定義的方法`model_name'
- 8. 如何刪除特定課程的前一課程?
- 9. 在多線程中getId方法如何決定任何線程的ID
- 10. 如何在另一個課程中調用以下方法? java
- 11. 如何在公共課程中轉移「非公開」方法
- 12. opta規劃師課程課程指定課程特定房間
- 13. 在課堂外定義的方法?
- 14. 如何決定方法或事件?
- 15. 如何編程解決1D中的薛定諤方程
- 16. 如何更新其他課程的方法?
- 17. 如何在沒有課程的情況下調用類方法?
- 18. 如何爲我的課程發送打印方法?
- 19. 如何從最終課程調用主類的靜態方法?
- 20. 如何自動包裝課程的所有方法?
- 21. 該方法getApplication()是未定義的類型(我的課程)
- 22. 如何在課堂外使用方法?
- 23. 如何使用不同課程中的課程?
- 24. 如何從不完整的課程中獲取課程名稱?
- 25. 如何在其他課程中使用課程的回報?
- 26. 如何公開第三方課程?
- 27. 課程想法
- 28. Rails Hartl課程:未定義的局部變量或方法
- 29. WordPress的:我如何解決我的課程後?
- 30. 如何解決PHP中的方程式?
如果這些方法執行任何類型的用戶交互(例如呈現GUI視圖),它們應該完全處於不同的類中。您的「模型」類應該只關注將客戶,地址和訂閱所需的各種數據分組。也許包括一些業務邏輯,如驗證(但也可以進入「控制器」類)。但肯定不是演示代碼。 – Thilo 2014-11-21 04:32:48
您使用哪種用戶界面技術來查看訂閱?如果是桌面GUI或基於Web GUI,可以通過查看[MVC(模型 - 視圖 - 控制器)模式](http://en.wikipedia.org/wiki/Model%E2%80%93view %E2%80%93controller)。我說*開始*因爲它是一個非常大的話題。在這種情況下,您可能會創建一個SubscriptionView類(或頁面,具體取決於您決定使用的技術)來查看訂閱。 – 2014-11-21 04:32:58
查看http://en.wikipedia.org/wiki/Single_responsibility_principle – 2014-11-21 04:40:54