我想用一个方法扩展String类,从字符串中创建一个url slug.我在这里找到了一个链接,显示了如何将扩展移动到自己的包中:
但是,我在Pharo Smalltalk中找不到任何"移动到打包"选项.是否可以使用新方法扩展核心类,还是有更好的方法?
在Pharo或Squeak中,将MyPackage的扩展方法放在一个名为*mypackage(或者如果您想要更具描述性*mypackage-slug)的方法类别中.
这些类别中的方法自动属于MyPackage包(至少从Monticello的角度来看)
"用新方法扩展核心类是否可以,或者有更好的方法吗?"
这个决定有一些权衡.实际上,Pharo直到最近才将String >> asUrl 作为清理系统的一部分进行删除.一方面,有些人(参见Kent Beck的最佳实践)认为在没有类似协议的对象之间有转换方法(在语义上相似).此外,这会导致膨胀的核心类(如String和Object).但是,在您自己的应用程序中,可能有充分的理由来平衡这些因素,并且由于您将其与应用程序打包在一起,而不是与系统打包,因此可能会失败.
| 归档时间: |
|
| 查看次数: |
1275 次 |
| 最近记录: |