zoukankan      html  css  js  c++  java
  • 仓颉编程语言的一点期望

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

    一、访问修饰符

    写了十几年的代码,用过几种语言,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类可见!这是不应该的!!!

    三、总结

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

    后续:

      这篇博客,我是从代码结构、封装、实践的角度讲的。  

      看到有几个反对推荐的,虽然写了十来年代码,但能力、智商有限,很多东西还没理解到,望指教。 

      有个朋友说到“Java 的所有包都是同级的吧 没有从属关系”,我之前也没想过,目前也还没想通

  • 相关阅读:
    Mac快捷键符号解释及用法介绍
    Mac使用小技巧:Fn键的妙用技巧
    Mac快捷键大全
    idea 开发SpringBoot项目并打包docker镜像部署到节点上
    .netcore linux开机自启脚本
    javascript Event Loop
    mysql函数使用技巧
    MySql查找慢查询sql
    js优先队列和链表
    mysql性能优化
  • 原文地址:https://www.cnblogs.com/littlecarry/p/15580668.html
Copyright © 2011-2022 走看看