華為要出國產程式語言倉頡了!牛逼
一、訪問修飾符
寫了十幾年的程式碼,用過幾種語言,Java最長。在對程式碼封裝時,總是有一點遺憾:
Java訪問修飾符:public、protected、default、private四種,如下類Class2,有四個方法
轉載請註明原著:部落格園老鍾 https://www.cnblogs.com/littlecarry/
Class2類所在包結構如下
package1、package2,是同級包,package10、package11是package1下的同級包
我期望,Class2有個方法,Class1、Class3能呼叫(可見),Class8不能呼叫(不可見)
public 的testA(),Class1、Class3可見,Class8也可見
default 的testC(),僅Class3可見
testB(), testD(),一樣都達不到這樣的要求
二、為什麼會有這樣的需求呢?
比如設計一個網路收發節點1
network1為上層包,下面分為 recv、send包,
Net1Manager類,統籌傳送和接收,是網路節點1對外的門面,所有對網路節點1的操作,只能通過這個類,實現完美的封裝、隔離、內聚。
Receiver類(接收器)、Sender類(傳送器)在不同的子包。
Sender類的sendData()方法,Net1Manager類是必須要呼叫的,所以只能是public,而這就導致sendData()方法對網路節點2的Net2Manager類可見!這是不應該的!!!
三、總結
希望倉頡有一種修飾符,讓那個方法同級包可見、上層包可見,使得程式碼能封裝得更好!