亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2912 | 回復: 8
打印 上一主題 下一主題

各位有這種編程習慣嗎?接口類 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-05-28 16:36 |只看該作者 |倒序瀏覽
比如,你要寫一個類Session,絕對不是為繼承、多態(tài)使用。就這么一個Session類。

于是,先寫一個接口類 ISession,里邊N個純虛函數(shù);
再寫class Session : public ISession
{
public:
  實現(xiàn)那N個純虛函數(shù);
private:
  自己的數(shù)據;
};


有哪位大師推薦過這種寫法?

論壇徽章:
2
青銅圣斗士
日期:2015-11-26 06:15:59數(shù)據庫技術版塊每日發(fā)帖之星
日期:2016-07-24 06:20:00
2 [報告]
發(fā)表于 2011-05-28 16:45 |只看該作者
java里面貌似很流行……
動不動先搞一個 IXXX 再說……
也不管 IPoint, IInteger 有無意義……

論壇徽章:
0
3 [報告]
發(fā)表于 2011-05-28 16:53 |只看該作者
那C++ 呢
比較贊同你的話,動不動就先搞個IXXXXX,看著好煩,美其名曰不暴露數(shù)據
MB的,現(xiàn)在被強迫這么寫,cao啊

論壇徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52雙子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午馬
日期:2013-10-18 21:43:38
4 [報告]
發(fā)表于 2011-05-28 16:57 |只看該作者
作為動態(tài)庫給別的模塊使用,這樣做還是有必要的

論壇徽章:
2
青銅圣斗士
日期:2015-11-26 06:15:59數(shù)據庫技術版塊每日發(fā)帖之星
日期:2016-07-24 06:20:00
5 [報告]
發(fā)表于 2011-05-28 23:27 |只看該作者
回復 3# okocha-jay

要不暴露數(shù)據, private就足夠了。
要不依賴布局, 二進制兼容, C語言里面有opacity type, C++有 impl(其實與opacity type差不多一回事), 也足夠了。
虛函數(shù)是為了多態(tài)使用的。

論壇徽章:
0
6 [報告]
發(fā)表于 2011-05-29 01:53 |只看該作者
貌似這個很流行啊, 我看到個c++項目都是這樣寫的
這樣方便維護, 以后想替換的時候, 方便啊

論壇徽章:
2
青銅圣斗士
日期:2015-11-26 06:15:59數(shù)據庫技術版塊每日發(fā)帖之星
日期:2016-07-24 06:20:00
7 [報告]
發(fā)表于 2011-05-29 02:11 |只看該作者
回復 6# fanhed

你說到重點了。 維護(演變)時, 究竟是替換還是增加?

就以lz的例子來說, 演變的過程中:
1. 是否有可能會有另外的 session-like 與現(xiàn)有的Session同時存在?
如果只有一種 session , 改變的是這一種 session 的實現(xiàn)方式, 那就沒必要。

2. 是否有代碼需要以相同的方式操作這些不同的 session ?
即使存在多種 session , 如果沒有代碼需要以相同的方式操作它們, 也沒有必要用 ISession。
f 用 sessionA, g 用 sessionB , 關 ISession 什么事?

只有兩者都為真是, 才有必要一開始就設計 ISession, 讓 f,g 用 ISession。
f,g 的代碼就可以被以后產生的新的 SessionA, SessionB 復用。


即使一開始沒有預見到這種需求, 以后改也不是不可能:
class Session { ... };
f(Session& s);
g(Session& s);

可改為:
class ISession;
class Session { ISession* s_; };
class SessionA : public ISession { ... };
class SessionB : public ISession { ... };


對那種二話不說, 直接 ISession 開搞的人……  無語……

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:56:11
8 [報告]
發(fā)表于 2011-05-29 06:57 |只看該作者
我就是這麼做,然後再做一個 c  wrap,哈哈。

論壇徽章:
0
9 [報告]
發(fā)表于 2011-05-29 12:13 |只看該作者
多人合作的時候,需要設計代碼的統(tǒng)一動作流程的時候,需要,簡單的測試代碼,沒必要
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP