我想了解什麼是實際的責任,所以我想用一個我目前正在工作的例子。我有一個將產品信息從一個系統導入另一個系統的應用程序。應用程序的用戶可以選擇各種設置,以便在一個系統中的哪個產品字段中使用另一個系統中的產品字段。幫助理解單一責任原則
所以我有一個班,說ProductImporter,它的責任是導入產品。這個班很大,可能太大了。
該類中的方法很複雜,例如getDescription。這種方法不是簡單地從其他系統獲取描述,而是根據用戶設置的各種設置設置產品描述。如果我要添加一個設置和一個新的描述方式,這個類可能會改變。
那麼,這是兩個責任嗎?有沒有一種產品可以進口,有一種可以獲得產品說明。這似乎是這樣的,幾乎所有的方法都會在它自己的類中,而且看起來像是過度殺傷。
我真的需要很好的描述這個原理,因爲我很難完全理解。我不想要不必要的複雜性。
它「顯示缺乏設計」 - 這是我不知道如何糾正的問題。如果描述方法屬於課程內容,而且我必須根據各種設置對各種變體進行說明,那麼您還可以如何設計它。我沒有看到任何其他的方式。 – user204588 2010-02-19 15:26:17
你可以有一個描述類,其職責是處理變化。等等,當一個責任過大時,將其分解爲更小的責任。 – 2010-02-19 15:38:50