composition

    0熱度

    2回答

    我有一個Django模型,有很多方法(並且將來會繼續有更多),因爲它是應用程序的核心。這是一個自定義用戶模型,與舊數據庫進行交互。有一些方法可以檢查用戶對不同區域的訪問權限,以及不同類型的成本等。 由於存在相互關聯的方法組,因此將它們拆分爲不同的類並使用對象組合。然而,我的問題是如何讓最終開發者看起來如此。他們是否應該使用對象鏈,例如user.access.has_normal_access(),

    5熱度

    6回答

    我正在做一個簡單的程序,維護一個數字列表,我希望這個列表也有一個名字。最好的辦法是讓我的列表類擴展ArrayList或讓它包含一個ArrayList成員?在這兩種情況下,當然都會有一個「名稱」字符串成員。 第一種方法意味着我只需要爲該名稱實現一個getter & setter,但是我認爲這會將我的類與特定實現緊密聯繫在一起?例如,如果我想稍後使用Vector,則無需在任何地方更改代碼。 第二種方法

    3熱度

    1回答

    是否有可能在不離開鏈條的情況下將jQuery元素的子元素添加到集合中? 也就是說,與離開它應該是這樣的: var set = $('.some-elements'); set.add('*', set); // or immediate ones only set.add(set.children()); 我正在尋找一種方式做這些,而無需創建臨時set變量: $('.some-eleme

    0熱度

    1回答

    從我讀的構圖看,當一個對象依賴於另一個對象存在時。例如,一條狗不能存在尾巴。另外,如果我有一個班級狗和班級貓都使用尾巴班,它還會被認爲是組成成分嗎?

    9熱度

    3回答

    我明白在F#功能組合物的基礎,如,例如,描述here。 也許我失去了一些東西,但。該>>和<<運營商似乎已經與假設定義的每個函數只需要一個參數: > (>>);; val it : (('a -> 'b) -> ('b -> 'c) -> 'a -> 'c) = <fun:[email protected]> > (<<);; val it : (('a -> 'b) -> ('c -> '

    1熱度

    4回答

    我在某種程度上與構圖和封裝的概念相混淆。 這裏是這有助於我的瓶頸的例子: 我有一個類A,其具有類型B的部分和C B也具有類型d和E. class A { B itsB; C itsC; } class B { D itsD; E itsE; } class D { int mAlpha; int getAlpha();

    8熱度

    2回答

    所以我只是在用Java編寫遊戲的開始,我在寫我的遊戲對象。現在我在Evolve Your Hierarchy這裏讀到,你應該把你的遊戲當成作品而不是作爲一個大的階級層次結構。從以前的鏈接此圖顯示: 然而,在實際開始認真執行我對哪裏應用接口中的一個小問題。 比方說你有一個叫播放器和可移動的接口和渲染類。你實現這個使用公共接口變量: class Player { public Moveabl

    0熱度

    3回答

    說我需要一個新的類型在我的應用程序,它由一個功能擴展的std::vector<int>組成。直截了當的方法是組成(由於STL容器的繼承限制): class A { public: A(std::vector<int> & vec) : vec_(vec) {} int hash(); private: std::vector<int> vec

    4熱度

    2回答

    我已經安裝我的應用程序以擁有可發現的安全服務(ISecurityService),它具有單一方法IPrincipal GetPrincipal()。實施者可以自由決定如何獲得委託人(通過域名登錄,DB等)。所以我的應用程序,然後具有對用戶的角色決定啓動做事部分,一個例子進口像這樣的接口部分我: [Import] public ISecurityService SecurityService {

    8熱度

    4回答

    有古老但明智的說法:「超越繼承的價值構成」。我一直試圖將這一點與其他OOP和設計模式一起應用於我參與的最後幾個項目。 對於大多數情況,它工作得很好,看起來有點像對。但我注意到有些時候,只有2到3個班級真正發揮出最好的效果,而其他10多個班級突然間變成了一些簡單的委託人,只是細微的變化。 有時,我試圖通過使用具有不同變化細節的抽象類來解決這個問題,但是有些東西並不完全正確。 你如何保持平衡並遵循舊的