【问题标题】:how to rise usability of this code? [closed]如何提高这段代码的可用性? [关闭]
【发布时间】:2013-10-01 08:41:06
【问题描述】:

我有 5 种或更多方法作为以下方法。 我希望能帮助我编写一两个方法来减少代码并提高代码的可用性:

public function index() {
    $this -> load -> view('header');
    $this -> load -> view('navigation');
    $this -> load -> view('default_form');
    $this -> load -> view('footer');
}

public function view_courses() {
    $this -> load -> view('header');
    $this -> load -> view('navigation');
    $this -> load -> view('courses');
    $this -> load -> view('footer');
}

public function view_classrooms() {
    $this -> load -> view('header');
    $this -> load -> view('navigation');
    $this -> load -> view('classroom');
    $this -> load -> view('footer');
}

【问题讨论】:

标签: php css html codeigniter


【解决方案1】:

有几种方法可以解决这个问题,哪一种有意义(如果有的话)完全取决于个人意见。 (我的 PHP 非常生疏,我从未使用过 CodeIgniter,所以这可能在语法上不准确。将其视为伪代码演示。)

一种方法可能是创建更小的“帮助”函数,它只是将功能委派一点。像这样的:

public function view_classrooms() {
    $this -> view_header_and_navigation();
    $this -> load -> view('classroom');
    $this -> view_footer();
}

private function view_header_and_navigation() {
    $this -> load -> view('header');
    $this -> load -> view('navigation');
}

private function view_footer() {
    $this -> load -> view('footer');
}

不过,在这种情况下,回报正在迅速减少。它非常适合重构更大的功能。

另一种方法可能是制作一个通用函数:

public function view_something($content) {
    $this -> load -> view('header');
    $this -> load -> view('navigation');
    $this -> load -> view($content);
    $this -> load -> view('footer');
}

当然,这里的权衡是在调用函数时需要知道实现细节,即使只是一点点。为了解决这个问题,您可以创建委托函数来配合它:

public function view_courses() {
    $this -> view_something('courses');
}

但是,同样,回报可能会开始迅速减少。

您目前采用的方法确实固有没有任何问题。 (除非这只是一个小例子,而且问题的规模要大得多。)每个视图都明确地由它的部分构成。当然,这些部分经常重复。但除了代码美学之外,这是否代表了一个实际问题?这段代码是否经常更改,有很多重复的工作?如果是这种情况,请在决定如何重构时仔细考虑重复的工作,而不仅仅是代码美学。由于重复的工作是要解决的实际问题,而不是代码。

【讨论】:

  • 撤回了我的近距离投票。 1+关于一个很棒的答案。也许是逆转徽章? xD
猜你喜欢
  • 2010-10-07
  • 2020-07-20
  • 1970-01-01
  • 2012-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多