【发布时间】:2012-04-17 12:55:56
【问题描述】:
首先,我的通用语言是 PHP,我正在考虑学习 Java。
所以让我把我的问题分成两个密切相关的部分。
这是第一部分。
假设我有一个域模型类。它有一些 getter、setter、一些查询方法等。有一天我想有可能比较它们。所以它看起来像:
class MyEntity extends AbstractEntity
{
public function getId()
{
// get id property
}
public function setId($id)
{
// set id property
}
// plenty of other methods that set or retrieve data
public function compareTo(MyEntity $anotherEntity)
{
// some compare logic
}
}
如果是 Java,我应该实现一个 Comparable 接口。但为什么?多态性?可读性?或者是其他东西?如果是 PHP——我应该为自己创建Comparable 接口吗?
接下来就是第二部分了。
我的同事告诉我,Java 的经验法则是为类的每个行为方面创建接口。例如,如果我想将这个对象显示为一个字符串,我应该用类似implements Stringable 的东西来声明这个行为,如果是 PHP,Stringable 看起来像:
interface Stringable
{
public function __toString();
}
这真的是经验法则吗?这种方法有什么好处?在 PHP 中值得吗?在 Java 中呢?
【问题讨论】:
-
我认为这个问题似乎更适合programmers.stackexchange.com