作者godfat (godfat 真常)
看板java
标题Re: 程式语言文法简化 (was: [问题] 从文字档读取먠…
时间Fri Aug 21 21:27:53 2009
※ 引述《sbrhsieh (sbr)》之铭言:
: 我想或许你可以把 Java 中的 package privilege 类比成 C++ 中的 friend 机制,
: 只是 Java package privilege 是比较 coarse-grained 的作法(同一个 package
: 里的 class 都是 friend,可以互相存取不那麽公开的 member)。C++ 的 friend
: 机制虽然可以比较精确去设定 friend-ship,但是一旦建立起 friendship 就可以
: 任意存取对方的任一个 member,就这部分而言,则是 C++ 的机制比较粗糙一些。
嗯,这样确实好理解多了,比方说如果整个 package 只有我在动的话,
我也当然不会乱写。因此可以把整个 package 视为某种程度的个体。
至於 C++ friend 的状况,我觉得这或许跟 Java 有 inner class
这种东西有关。inner class 也可以存取 private, 因此不需要 friend.
C++ 没有这种东西,只好靠 friend 来取巧了。
有时候会在想,如果说有某种 annotate 详细限制各种 method
存取的权限... 或许太走火入魔了一点。也许 default privilege
这样定也是希望不要有太严格的存取权限?
: : 有时候为了避免让同一个 package 存取,我得额外分 package,
: : 不然就是直接改成 public 算了。这让我觉得很困扰...
: : say, java.util.date.Date 和 java.util.collections.HashMap
: 这部分可以再多加叙述说明吗?是什麽样的情况?
其实只是因为我比较少写庞大的程式,大部份的都是小东西,
因此会希望只有 1~2 个 package. 但就算是小程式,
往往也会有很多不相关的 class, 我会希望他们互相没有关系。
可是由於是同个 package, 除非订成 private, 不然仍然能互相存取。
多开一点 package 嘛,又觉得很麻烦。有时候只有一两个 class...
--
「行け!Loki!」
(rocky ロッキー)
-Gurumin ぐるみん 王子? XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.28.18