csdn上發(fā)了關于這個疑問,但還沒解開我的疑問,發(fā)這來看看有沒有好的解答。
Discuz!NT源代碼中,發(fā)現(xiàn)數(shù)據(jù)操作函數(shù)接口居然只定義了一個IDataProvider,所有操作函數(shù)都定義在里面至少800多個,雖然通過partial把實現(xiàn)具體的DataProvider類分放到不同cs文件中,但是總感覺很別扭,有悖單一職責。我不知道為什么要這么定義,這樣有什么好處嗎??為什么不分開來呢?直接按照職責多定義幾個接口不也可以嗎?而且邏輯層調(diào)用的時候也方便啊,如果按照這么大一個接口去設計,調(diào)用的時候很麻煩還要從800多個方法里找...人家這樣設計估計也有道理,可是我沒有看出來呢
http://topic.csdn.net/u/20120510/16/a4deb7ec-b8e7-4cf0-9885-8d41424400b0.html
以上是csdn上的帖子 ?可以看看 ?有人說對插件開發(fā)好 ?我不知道好在哪
4 回答

森林海
TA貢獻2011條經(jīng)驗 獲得超2個贊
這樣做的目的是,如果有人擴展開發(fā),但是這些方法又需要用到,分開多個文件的話,別人使用難度增加。
當分開多個接口時,如果需要創(chuàng)建接口時,new操作會消耗更多的資源,單一接口,如果做單列的話,很容易做

絕地無雙
TA貢獻1946條經(jīng)驗 獲得超4個贊
嗯這塊是很別扭。實際上也是不對的,不過可以看著還挺清晰。
其實官方對這個問題有過解答。
官方的回答就是可以分開。
如果是插件的話,比如IPlug .繼承IDataProvider
實現(xiàn)Plug。繼承DataProvider。即可把方法分開。
看著別扭就稍微自己改下就oK了??傮w來說靈活度還是挺高的。
不過感覺discuz!nt 整體結構上并不好。
- 4 回答
- 0 關注
- 462 瀏覽
添加回答
舉報
0/150
提交
取消