gpt4 book ai didi

ruby - 如何编写卫生的 Ruby mixin?

转载 作者:数据小太阳 更新时间:2023-10-29 07:18:10 28 4
gpt4 key购买 nike

假设我正在编写一个向第三方类添加功能的混合模块。显然,我想让第三方类及其客户端可以访问某些方法和实例变量。这些构成了mixin模块的公共(public)接口(interface)。

但是我想封装一些其他的方法和实例变量。我不希望我正在混合的类可以访问它们,特别是我不希望它们意外地覆盖、隐藏、冲突或以其他方式干扰 mixee 类的方法或实例变量——无论是那些当前可能存在的,或者如果第三方修改我正在混入的类,将来可能会创建的。

如果有的话,我需要采取什么预防措施来确保我的 mixin 以这种方式“卫生”?

最佳答案

创建一个单独的对象来封装您的功能和实例变量,并让 mixin 将可公开访问的方法委托(delegate)给该对象。现在您只需要将一个实例变量与您的对象相关联。您甚至可以通过在模块中存储 {Mixee => Delegate} 哈希并在每个混合方法的开头进行查找来避免这种情况。

关于ruby - 如何编写卫生的 Ruby mixin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1210565/

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