→ TW0981081007: 用struct就是public的,以C++來說。 03/05 21:48
※ 引述《csfgsj (Lazy bone)》之銘言:
: ※ 引述《oaz ()》之銘言:
: : 那我再舉例,假設鞋子(資料)有一個動作(程序)叫綁鞋帶
: : 你會預期
: : I. 鞋子.綁鞋帶() 會只作用在這雙鞋?
: : II. 鞋子.綁鞋帶() 不但會作用在我腳上的鞋子,還會作用在隔壁鄰居的鞋子上
: : III. 所有人的鞋子的綁鞋帶動作,都統一在某間放裡
: 開放體系就是在我得到這雙鞋子時
: Struct Shoes {…..}
: 我不必去預先設定我會對它作什麼動作
: 對鞋子的動作可能當時有一些
: A( shoes *);
: 以後有可能再去想到另外一些
: B( shoes *)
: 我不用一開始就把所有東西都設死
給你三個解法:
一、class Shoes 所有欄位都開 public
二、class Shoes 所有欄位都開 protected ,
然後 class SpecialShoes extends Shoes {} ,開出你想要的 API
三、class Shoes 所有欄位都開 private
然後所有的欄位都有 getter/setter
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.30.46
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1425563143.A.D2C.html