2013-06-13 60 views
0

我有一個類,它爲Windows窗體文本框添加了一些功能。例如,它處理文本框關鍵事件並基於某種邏輯,如果按下「Enter」,則會顯示一個特殊的網格,讓用戶從大量實體中選擇一個實體。所以我稱這個類爲'Textbox Extender',文本框爲'Extended'。單一責任原則是否違規

現在,我想讓用戶知道是否通過更改背景顏色來擴展文本框,很容易向類中添加此功能BUT: 我非常懷疑它違反單一責任原則。任何想法是高度讚賞。

回答

0

它不反對ssr。你的課堂責任是擴展文本框的功能。

+0

但現在它有兩個職責:擴展文本框,改變背景顏色。也許明天改變字體。另一天改變前景。你的理想是什麼? – Alireza

+1

哈!然後想想通常的文本框 - 它有責任的ZILLIIONS:處理「a」按鈕按下,打印「a」字符,處理「b」按鈕按下,打印「b」字符等。 – athabaska

+0

我認爲在你的情況下,你可以有更廣泛地看待責任。此外,在一天結束時,您希望有一個工作應用程序,而不是滿足所有「適當開發」規則但不起作用的應用程序。 – athabaska

0

單一責任原則說你的班級應該只滿足一個目的,班級的目的是什麼?我會說它是顯示一個擴展的TextBox(並獲取它的數據,這是你不能在其他地方做的),如果你的UI改變會告訴你的用戶他們現在有一個擴展的文本框一切正常,沒有違反SRP。無論如何,從UI對象封裝UI似乎是過度工程。

+0

你是什麼意思'無論如何從UI對象封裝UI似乎是過度工程。'什麼是封裝在擴展類。 – Alireza

+0

你想改變你的用戶界面,現在如果它會反對srp,這意味着你將不得不把它放在另一個班級。而從另一個類改變你的文本框的UI而不是自己似乎是無用的工作。 – Master117

相關問題