仓颉编程语言的一点期望

华为要出国产编程语言仓颉了!牛逼

 

一、访问修饰符

写了十几年的代码,用过几种语言,Java最长。在对代码封装时,总是有一点遗憾:

Java访问修饰符:public、protected、default、private四种,如下类Class2,有四个方法

转载请注明原著:博客园老钟 https://www.cnblogs.com/littlecarry/

Class2类所在包结构如下

 

package1、package2,是同级包,package10、package11是package1下的同级包

我期望,在方法的可见性上,同级包可见、上层包可见、其他级别包不可见,如:Class2有个方法,Class3可见(有权限调用(同级包)Class1可见上层包class4不可见Class8不可见,

现在的java语法中

public 的testA(),Class1、Class3可见,Class8也可见、class4可见(所有包可见)

default 的testC(),仅Class3可见(同级包可见)

testB(), testD(),一样都达不到这样的要求

 

二、为什么会有这样的需求呢?

 比如app会访问tcp、蓝牙两个网络,网络收发节点network1为tcp,network2为蓝牙

network1为上层包,下面分为 recv、send包,分别负责tcp接收和发送

Net1Manager类,总管理发送和接收,是网络节点1(tcp节点)对外的门面,所有对网络节点1的操作,只能通过这个类,实现完美的封装、隔离、内聚。

Receiver类(接收器)、Sender类(发送器)在不同的子包。

 

 Sender类的sendData()方法,Net1Manager类是必须要调用的,所以只能是public而这就导致tcp节点的sendData()方法对网络节点2(蓝牙节点)的Net2Manager类可见!这是不应该的!!!

 

三、总结

希望仓颉有一种修饰符,让那个方法包内可见上层包可见、其他包不可见,使得代码能封装得更好!

 

posted @ 2021-11-20 11:56  老凯瑞  阅读(21857)  评论(10编辑  收藏  举报