针对预期的类型更改进行编程的最佳方法是什么?说,我将来可能不得不使用Joda DateTime而不是Java Date。由于Java不鼓励像typedef这样的反模式,所以确保将来轻松重构的最佳方法是什么 感谢。
答案 0 :(得分:5)
当然,“单一责任原则”或其附近的内容和封装应该有助于限制依赖性蠕变。
然而,基本类型的选择是架构决策。如果要更改字符串或整数类型,则需要更改代码。日期差别不大。
答案 1 :(得分:4)
接口编程和适当的分层是我能想到的最好的防御措施。
当您将完成的内容与完成后的内容分开时,只要界面不变,您就可以在不影响客户端的情况下更改实现。
如果您必须更改界面,或者您最终完成了一个新问题,那么所有赌注都将被取消。没有语言具有内在的洞察力。
答案 2 :(得分:2)
将有问题的API /类型包含在wrapper interface后面,并仅通过包装器使用它。然后,您只需要更改包装器代码来切换实现。
这将是一般解决方案。但是,Tom正确地指出Date是如此基本的类型,选择它应该是一个架构决策,不要经常改变。
答案 3 :(得分:1)
听起来像你想要完成“动态重新分类”,
我认为您应该可以使用State pattern来实现此目标。
请在此处查看示例:http://cnx.org/content/m17225/latest/
答案 4 :(得分:1)
你可以试试eclipse的IAdaptable
答案 5 :(得分:1)
编程的最佳方式是什么? 与预期的类型变化相反。
让您的设计尽可能简洁,并保持一系列良好的单元测试。
这可以帮助您进行所有未来的更改,包括未预料到的更改(更常见)。
答案 6 :(得分:0)
我对此的看法是,一个好的Java IDE可以大大减少大规模数据类型更改的痛苦。您搜索代码使用旧类的点,替换为新类,并修复随后的编译错误,然后重复。完成更改后,运行您的单元/回归测试,修复错误并(触摸木材!)您已完成。
好的......可能不那么简单。特别是: