什么是最好的?使用接收一些参数并处理它的低级方法。或者在对象中有一个高级接口,正如它的名字所说的那样?
例如。:
低级:
<?php
class Html {
public function renderSelect($name, $options) {
//
}
}
class Repository {
public function lists($repositoryName, $keyColumn, $valueColumn) {
//
}
}
# usage
$html->renderSelect('campaign_id', $repository->lists('campaigns', 'id', 'name'));
$html->renderSelect('account_id', $repository->lists('accounts', 'id', 'company'));
高水平:
<?php
class Html {
public function renderSelect($name, $options) {
//
}
public function renderCampaignsSelect() {
return $this->renderSelect('campaign_id', $repository->listsCampaigns());
}
public function renderAccountsSelect() {
return $this->renderSelect('account_id', $repository->listsAccounts());
}
}
class Repository {
public function lists($repositoryName, $keyColumn, $valueColumn) {
//
}
public function listsCampaigns() {
return $this->lists('campaigns', 'id', 'name');
}
public function listsAccounts() {
return $this->lists('accounts', 'id', 'company');
}
}
# usage
$html->renderCampaignsSelect();
$html->renderAccountsSelect();
值得注意的是,高级选项将随着应用程序的扩展而增长,如果出现更多实体,将需要更多方法,例如:添加的赞助商将具有renderSponsorsSelect
和listsSponsors
. 但是它的使用使代码阅读起来非常流畅,我们可以为每种方法做不同的实现。
你怎么看?
谢谢。