返回信息流而不是
HashMap map = new HashMap();
看一些代码有感。
这是一条镜像帖。来源:北邮人论坛 / java / #34261同步于 2014/8/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
为什么要写成 Map map = new HashMap();
icyfox
2014/8/31镜像同步47 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
map只是一个接口 实现类有hashmap treemap等
直接用map可以不管是哪种实现的 维护起来方便 还可以实现多态
【 在 icyfox (熊爸) 的大作中提到: 】
: 而不是
: HashMap map = new HashMap();
: 看一些代码有感。
: ...................
如wangxiao所言。不止是map,只要是你使用的方法在基类或接口中有声明,都最好这样写。将来维护时候,如果需要替换成另一种实现,相对方便。可以看看设计模式中策略模式相关。
为啥要换捏...
【 在 taoch (跪求offer|跪求毕业) 的大作中提到: 】
: 如wangxiao所言。不止是map,只要是你使用的方法在基类或接口中有声明,都最好这样写。将来维护时候,如果需要替换成另一种实现,相对方便。可以看看设计模式中策略模式相关。
不可能一步设计到位啊,所以有可能会更换。假设项目开始只是单线程,将来有可能会改用成ConcurrentHashMap
另外还能限制一些使用到的方法,比如Stack s = new LinkedList()就能确保只能使用栈中的方法
【 在 icyfox 的大作中提到: 】
: 为啥要换捏...
:
这就跟C++的虚函数表一样,一切为了动态联编!
举个例子,
GeometryObject *go0 = new Triangle();
GeometryObject *go1 = new Circle();
可以这样写,不算错。有时候写scala程序的时候会写val m = new HashMap[...,...](),和你那样写是等效的。
来自「北邮人论坛手机版」