Dot-Net

儘管我了解大多數 OOP 概念,但我無法清晰地描繪實現 OOP 概念。為什麼?

  • February 3, 2014

我一直在做我自己的一些項目,沒有任何工業接觸。目前,我使用簡單的方法來開發具有可忽略不計的 OO 方法的小型應用程序,例如使用函式的多態性為數據庫函式創建一個通用類,稍微使用建構子,但我真的不知道如何使用 OOP 實現整個項目邏輯。

我知道什麼是介面、抽像類、密封類和其他 oops 概念,並且非常清楚。但問題是我應該何時以及如何在我應該的地方大量實施 OOP。

我是否需要研究實時應用程序及其案例研究,如果需要,請向我推荐一些網站或書籍/電子書,我可以從中閱讀並能夠實施它們。

目前我在程式時覺得自己不完整。我有效地實現了數據庫及其大部分組件,但是在嘗試使用 OOP 時還是個孩子。

我已經閱讀了許多範例,這些範例試圖讓人們理解 OOP 之類的形狀,例如汽車。所有這些。他們很想清楚概念,但不足以在一些現場項目中實施

學習應用 OOP 的第一步是將常見的功能和數據收集到類中。一開始你不會做得很好,但你會變得更好。Code Magazine 最近的一篇關於回歸基礎的文章很好地表達了這一點。

開始嘗試製作(將成為的類)代表解決方案中真實事物的真實對象。(有一個花哨的名字,但它也是非常基本的。)這並不是讓實用程序類成為方便的、與主題相關的功能。嘗試安排事情,以便在對像中維護的數據在呼叫該對象的方法時為您保存參數。將存在的對像想象為社區中真實的個體事物。擬人化他們。安排事情,這樣您在使用它們的功能時就不必擔心課堂上發生了什麼。

一開始我不會擔心所有這些設計模式。最好先練習您所學的基本 OOP 概念。專注於這些模式會導致很多人跳過真正思考 OOP 的哲學,而是試圖將他們的情況塞進一個預先打包的計劃中。閱讀有關娛樂和創意的“設計模式”。稍後,您將想要真正研究它們並嘗試專門實施其中的一些。

簡而言之,你必須投入並開始應用你所學的知識。在你做出一些好的設計之前,你需要先做出一些糟糕的設計,所以不要擔心。

針對提問者的評論進行編輯:我認為下一步可能是專注於您的班級之間的*關係。*例如,一旦您在邏輯中使用了 Customer 對象,您就必須不費吹灰之力獲取相關的 Order 對象。創建一個屬性oCustomer.Orders,即返回List<Order>。(這是 ac# 範例。)在此屬性中獲取該客戶的所有訂單,將它們放入列表對像中,將其保存在私有變數中以防再次呼叫該屬性,然後返回該列表對象。如果您已經這樣做了,請尋找下一個最難嘗試的新事物。也許您需要經常查找客戶首次下訂單的日期。然後,創建一個繼承自的 Orders 類Collection<order>來替換您的基本List<order>,並添加屬性 FirstOrder。然後你就可以做到了var FirstOrderDate = oCustomer.Orders.FirstOrder.OrderDate

繼續嘗試做下一個最難的新事物。繼承和添加成員。用子類創建一個基類。覆蓋基類成員。使用並獲得良好的自定義集合。

從您正在使用的對像模型中學習。當您看到直覺且易於使用的東西時,請這樣做!在我職業生涯的早期,我不得不廣泛使用直覺且簡單的 MS-word 對像模型。當我創建自己的庫時,我試圖複製這種感覺。結果很好。

最終研究**模式。儘管我建議您不要對它們過於敬畏,但它們是想法的重要來源,最重要的是可以嘗試的東西**。(了解常見“模式”的名稱也有利於交流。)例如,當您看到外掛模型時,介面的概念就會真正有意義。

引用自:https://stackoverflow.com/questions/1959295