经常看到一些第三方库有这样的写法
举个栗子
protected $outType = 'html';
public function setType($type)
{
$this->outType = $type;
}
那么我在代码中调用的时候,如果要输出json格式的数据的话就必须先调一次setType这个方法
$this->setType('json');
...
...
...
$this->display(); //这个display里判断$outType属性是html
还是json
我不解的是,为什么不在display()方法里直接传递一次参数呢,比如下面这样
$this->display('json');
这样还省了一次方法调用。 我想知道第一种的写法的好处主要表现在什么地方。
谢谢大家了。
其实如果这个setType仅仅是干这样的一件简单的事情,那就是过度封装了,如果这个setType还做了参数检查,错误异常处理等等,就像你说的,一个方法尽量只做一件事,结合具体的事情去看,就会发现不同之处,不这么做也不是不可以,总之最后想要的就是代码逻辑清晰,好维护,修改,后面的人看得懂,不吃力。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。