Интересно, когда я должен использовать методы getter-setter в классе и когда мне следует использовать параметры contruct класса?
Я объясню это с помощью PHP. Например, я пишу класс ниже:
class foo{
public $a; //required parameter
public $b; //optional parameter
public function __construct(){
//some code
}
public function setA($a){
$this->a = $a;
}
public function getA(){
return $this->a;
}
public function setB($a){
$this->a = $a;
}
public function getB(){
return $this->a;
}
public function bar(){
//do something with class attributes by using getter - setter methods.
}
}
$foo = new foo();
$foo->setA('something');
$foo->setB('something2');
$foo->bar();
Я могу написать класс таким способом абсолютно. Но я могу написать класс другим способом, используя параметры конструкции. Пример ниже:
class foo{
public $a; //required parameter
public $b; //optional parameter
public function __construct($a, $b){
$this->setA($a);
$this->setB($b);
//some code
}
protected function setA($a){
$this->a = $a;
}
public function getA(){
return $this->a;
}
protected function setB($a){
$this->a = $a;
}
public function getB(){
return $this->a;
}
public function bar(){
//do something with class attributes by using getter - setter methods.
}
}
$foo = new foo('something', 'something2');
$foo->bar();
Я думаю, что, если у меня есть обязательный параметр, я хочу использовать его в методе построения. Но, если у меня есть необязательный параметр, я хочу его с помощью класса setter. Например:
class foo{
public $a; //required parameter
public $b; //optional parameter
public function __construct($a){
$this->setA($a);
//some code
}
protected function setA($a){
$this->a = $a;
}
public function getA(){
return $this->a;
}
public function setB($a){
$this->a = $a;
}
public function getB(){
return $this->a;
}
public function bar(){
//do something with class attributes by using getter - setter methods.
}
}
$foo = new foo('something');
// if I will use an optional parameter, I can set it by the setter method
$foo->setB('something2');
$foo->bar();
Ну, я хочу узнать stg о методах записи кода. Какой из них популярен? Какой из них полезен, какой из них верный_ Когда я должен использовать один из них? Большое спасибо.