Интересно, когда мы должны использовать методы getter-setter через параметры конструкции класса? - PullRequest
0 голосов
/ 10 октября 2019

Интересно, когда я должен использовать методы 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 о методах записи кода. Какой из них популярен? Какой из них полезен, какой из них верный_ Когда я должен использовать один из них? Большое спасибо.

1 Ответ

0 голосов
/ 10 октября 2019

«Истинный» способ написания метода и конструктора зависит от того, что нужно во время создания экземпляра.

В конструкторе должны быть все обязательные аргументы, чтобыКласс работает должным образом, как вы сказали, необязательные параметры.

Вы также можете вставить дополнительные параметры в конструктор, чтобы упростить код в случае, если на этом этапе вы уже знаете эти значения, тем самым вы не делаетенужно вызвать его установщики позже.

...