如何提高此代码的可用性



我有 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非常生疏,我从未使用过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');
}

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

你目前拥有的方法实际上没有什么固有的错误。 (除非这只是一个小例子,并且问题的规模要大得多。 每个视图都是由其部分显式构造的。 当然,这些部分经常重复。 但除了代码美学之外,这是否代表了一个实际问题? 这段代码是否经常更改,有很多重复的工作? 如果是这种情况,在决定如何重构时,请仔细考虑重复的工作,而不仅仅是代码美学。 因为重复的工作是要解决的实际问题,而不是代码。

最新更新