比如有一个短消息类
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//第一种写法
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
class msg{
private $uid;
public function set_uid($uid){
$this->uid=$uid;
} public function get_read_count(){
//返回已读数量
} public function get_no_read_count(){
//返回未读数量
} public function get_delete_count(){
//返回删除数量
}
}++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//第二种写法
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
class msg{
private $uid;
public function set_uid($uid){
$this->uid=$uid;
} public function get_count($type){
switch ($type) {
case 1:
return 已读数量;
break;
case 2:
return 未读数量;
break;
case 3:
return 删除数量;
break;
default:
return 0;
}
}}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//第一种写法
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
class msg{
private $uid;
public function set_uid($uid){
$this->uid=$uid;
} public function get_read_count(){
//返回已读数量
} public function get_no_read_count(){
//返回未读数量
} public function get_delete_count(){
//返回删除数量
}
}++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//第二种写法
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
class msg{
private $uid;
public function set_uid($uid){
$this->uid=$uid;
} public function get_count($type){
switch ($type) {
case 1:
return 已读数量;
break;
case 2:
return 未读数量;
break;
case 3:
return 删除数量;
break;
default:
return 0;
}
}}
2是把3种性质结合到一起成为一个“集合”,减少api的接口
2、继承灵活,当有一个继承msg类的子类想修改“已读数量”和“未读数量”时,它也必须完全实现get_count的硬编码结构(无论是if还是switch),否则父类为统一count而作的get_count就没有意义了