什么是可空构造函数和带变量的方法的优缺点

时间:2016-01-21 10:38:12

标签: java

这可能是一个非常基本的问题,但目前我正在使用spring进行练习并注意到public class Example { private String stuffA; private String moreStuffB; private User user ; public Example(String stuffA, String moreStuffB, User user) { this.stuffA = stuffA; this.moreStuffB = moreStuffB; this.user = user; } public String ShowUserName (){ return user.getFirstName(); } public String ShowStuff(){ return stuffA + " " + moreStuffB; } } 注释会在后台创建一个没有变量的构造函数,并强制使用方法。

所以现在我有以下问题之间有什么区别。

public class Example {



    public Example() {
    }

    public String ShowUserName (User user){

        return user.getFirstName();

    }

    public String ShowStuff(String stuffA,String moreStuffB){

        return stuffA + " " + moreStuffB;

    }

}

而且:

public function login()
{

    $this->load->library('form_validation');
    $this->load->model('user_model');

    $this->form_validation->set_rules('email', 'Email', 'required|valid_email|min_length[3]');
    $this->form_validation->set_rules('passwd', 'Passwd', 'required|min_length[3]');

    $data = array();

    if ($this->form_validation->run())
    {
        $email = $this->input->post('email');
        $passwd = $this->input->post('passwd');         

        $result = $this->user_model->check($email, $passwd);

        if ($result == true)
        {
            $newdata = array(
               'email'     => $email,
               'logged_in' => TRUE
           );

            $this->session->set_userdata($newdata);

            $this->load->view('home', $data); # load view
        }
        else
        {
            $data['error'] = 'Wrong e-mail or password.';
            $this->load->view('login', $data);
        }
    }
    else{
        echo "Form validation Error";
    }

}

首选方式是什么,还是取决于具体情况? 这两个例子之间的专业人士和对手是什么?

1 个答案:

答案 0 :(得分:2)

在第一种情况下,您拨打example.showStuff()

在第二种情况下,您拨打example.showStuff("stuff", "moreStuff")

区别在于调用者是否需要能够为这两个对象提供值,或者它们是对象实例的一部分。

两者结合的现实例子:

dateFormatter.format(yesterday)

这里调用者提供了格式化的日期,但是dateFormatter知道应该使用什么样的格式化模式。