gpt4 book ai didi

coding-style - Smalltalk 公共(public)方法与私有(private)/ protected 方法

转载 作者:行者123 更新时间:2023-12-04 03:02:08 24 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.

5年前关闭。




Improve this question




我注意到 Smalltalk 语言没有私有(private)/ protected 方法的概念。所有方法都是公开的。来自 Java/C++ 背景,我认为这是该语言的一个根本弱点,因为在 Smalltalk 中创建的任何应用程序都完全可以操作。我想您可以依靠命名约定来记录公共(public) API 和前缀方法以将它们指示为私有(private)(我相信 Squeak 会这样做),但它仍然是完全开放的。

与使用显式访问修饰符来控制相比,这种方法有什么好处吗
访问方法调用?

最佳答案

事实上,Smalltalk 的方式是将私有(private)方法放在“私有(private)”类别中。这表明您不应该使用这些方法,但当然不会强制执行此操作。

这是设计使然 - 这是一个功能,而不是错误。 Smalltalk 从一开始就被设计成一个开放系统。

一些优点:

  • 如果我只是必须——也许库设计者没有预见到需要公开一些我必须拥有的特定东西——我仍然可以调用那些私有(private)方法。显然,这不是一件轻而易举的事情:相反,明智、谨慎地知道这是一种战术解决方案。
  • 语言简洁。
  • (根据 Alexandre Jasmin 的评论)Smalltalk 没有区分您(程序员)可以做什么和语言/环境可以做什么。这意味着 Smalltalk-the-image 公开了您构建自己的检查器/调试器/任何东西所需的所有东西,而无需使用我们可以做到这一点但你不能技术提供特殊工具。
  • 关于coding-style - Smalltalk 公共(public)方法与私有(private)/ protected 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7399340/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com