Golang中, 是否有某种访问控制机制? (类似Java的private等, 假如在Go中使用OOP编程) ?

发布于 2017-05-06 02:18:16 字数 541 浏览 1152 评论 1

实际现象

  1. 假设OOP是我写代码的主要抽象手段

  2. 假设: 访问控制必须从严( 参考: Java )

  3. 想实现

1) 如果不允许外部直接通过 new 来创建对象,那么构造方法必须是 private。
2) 工具类不允许有 public 或 default 构造方法。
3) 类非 static 成员变量并且与子类共享,必须是 protected。
4) 类非 static 成员变量并且仅在本类使用,必须是 private。
5) 类 static 成员变量如果仅在本类使用,必须是 private。
6) 若是 static 成员变量,必须考虑是否为 final。
7) 类成员方法只供类内部调用,必须是 private。
8) 类成员方法只对继承类公开,那么限制为 protected。

预期现象

  1. 了解到: Go中, 首字母大写, 即为 public, 其余为private

  2. 但是手段不够「细粒度」

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜无邪 2017-05-06 02:18:16

很抱歉,如果你需要OOP抽象手段,那Go语言并不适合你,因为Go是一门过程式语言(Go is a Procedural language. There are many more paradigms than Functional and OO, and many have come and gone in trends in the past.)
如果需要OOP作为主要工具,广泛使用的Java是一个很好的选择(跨平台使用字节码,只要对应平台有Java环境)。若是需要更高的性能和对跨平台要求不高,那么C++也是不错的选择,但需要代码编写人员对内存控制等方面有更深厚的功力。
参考链接:https://www.quora.com/Is-Gola...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文