- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
假设我正在编写一个向第三方类添加功能的混合模块。显然,我想让第三方类及其客户端可以访问某些方法和实例变量。这些构成了mixin模块的公共(public)接口(interface)。
但是我想封装一些其他的方法和实例变量。我不希望我正在混合的类可以访问它们,特别是我不希望它们意外地覆盖、隐藏、冲突或以其他方式干扰 mixee 类的方法或实例变量——无论是那些当前可能存在的,或者如果第三方修改我正在混入的类,将来可能会创建的。
如果有的话,我需要采取什么预防措施来确保我的 mixin 以这种方式“卫生”?
最佳答案
创建一个单独的对象来封装您的功能和实例变量,并让 mixin 将可公开访问的方法委托(delegate)给该对象。现在您只需要将一个实例变量与您的对象相关联。您甚至可以通过在模块中存储 {Mixee => Delegate} 哈希并在每个混合方法的开头进行查找来避免这种情况。
关于ruby - 如何编写卫生的 Ruby mixin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1210565/
我正在尝试在我的项目中使用 SweetJS。为了更好地理解和学习 SweetJS,我想我会从一个简单的“类”宏开始(我知道有一些存在,只是在这里玩......)。然而,我似乎无法让 SweetJS 停
快一点。 我正在将一个使用 mysql 的旧 Web 应用程序迁移到 mysqli。我曾经使用我编写的自定义清理功能来防止 SQL 注入(inject): function sani($tex
我正在尝试在racket中编写一个define-let宏,它“保存”(let ((var value) ...) ...)的 header ,即只是 (var value) ... 部分,并允许稍后重
我是一名优秀的程序员,十分优秀!