design-principles

    2熱度

    2回答

    我想了解is-a vs是像是一種關係,我在某處閱讀,我們必須嘗試遵循設計,以便我們總是有 - 是一種關係,而不是 - 像一個。考慮形狀基類和衍生三角形和圓形類的經典例子。所以圓圈是一個分享,三角形也是一個形狀。功能顯示區域在基類中定義。下面的程序運行良好。 #include "stdafx.h" #include<cmath> #include <iostream> class shape

    3熱度

    1回答

    我已經看過相同的東西了,現在已經引起了我的好奇心。它甚至在這個網站! 「https://stackoverflow.com/questions/ask」上的<input id=title ... >元素設置爲maxlength=300和data-max-length="150"。 也就是說,輸入框可以讓你輸入300個字符到它,但表單將不接受上述150 任何事情都是有一個原因人們可能做到這一點?

    0熱度

    2回答

    我有一個派生自ButtonModifier的VolumeButton。如果我將業務邏輯(音量上/下,靜音等)放入VolumeButton,啓用/禁用邏輯以基類ButtonModifier。像, public class VolumeButton : ButtonModifier { /// Event handler to change the volume. void Ch

    0熱度

    1回答

    我瞭解許多設計原則在某些情況下相互衝突。所以,我們必須權衡他們,看看哪一個更有利。 直到現在我知道SRP的原則,並做了我的設計很多基於這一點,但內部我感覺有時錯誤,而遵循 這個原則。現在我來了解TDA,我的感覺了與:) SRP更多的支持: -對象應該擔心自己的關注不是其他任何人 TDA: -行爲(這是依賴於它的對象狀態)應該保持在對象本身內 例如: -我有不同的形狀像矩形,正方形,圓等現在我必須計

    2熱度

    2回答

    讓我們假設我有這樣的功能: void foo (struct1 &v1, struct2 &v2, ..., structn &vn){ //do something with a subset some of the arguments... foo1(v1, v2, ..., vn); } void foo1 (struct1 &v1, struct2 &v2, ..

    1熱度

    1回答

    它將是一個完全理論化的線程。 讓我們來談談將數組更改爲特定對象的方法,以便對其進行比較和處理。 例如,我們有一個EntityClass,EntityInterface,SomeRepository,SomeManager,SomeCommand。 實體是一個明顯的對象,例如: class EntityClass implements EntityInterface { public $n

    0熱度

    1回答

    假設我們有一個帶有selectOneMenu的UI,其中包含兩個項目basic和customized。讓class DocumentController負責生成所選類型的PDF文檔(basic或customized)。 很明顯,UI的擴展(例如新項目)導致class DocumentController的修改。因此,class DocumentController違反開閉原則,這意味着它也違反了單

    1熱度

    1回答

    我正在瀏覽以下link以瞭解高級別和低級別模塊在依賴反轉原則中的含義。 按照給出的解釋,下面的代碼片段是一個很好的/合適的例子嗎? public class HighLevel { private IAbstraction _abstraction; public HighLevel(IAbstraction abstraction) { _abstr

    10熱度

    5回答

    這是關於管道實現的設計問題。以下是我的天真實施。 接口在管道的各個步驟/階段:在流水線的步驟/階段的 public interface Step<T, U> { public U execute(T input); } 具體實現: public class StepOne implements Step<Integer, Integer> { @Override

    0熱度

    1回答

    我正在開發一個電信項目。我在我的項目中實施了Open/Closed原則。以下是我的課程。 MainServiceClass.CS public abstract class BaseServiceClass { public abstract IEnumerable<string> GetServiceData(); public abstract IEnumerable<s