这可能是一个非常基本的问题,但目前我正在使用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";
}
}
首选方式是什么,还是取决于具体情况? 这两个例子之间的专业人士和对手是什么?
答案 0 :(得分:2)
在第一种情况下,您拨打example.showStuff()
。
在第二种情况下,您拨打example.showStuff("stuff", "moreStuff")
。
区别在于调用者是否需要能够为这两个对象提供值,或者它们是对象实例的一部分。
两者结合的现实例子:
dateFormatter.format(yesterday)
这里调用者提供了格式化的日期,但是dateFormatter知道应该使用什么样的格式化模式。