Ben bu OOP seçeneklerden hangisi kullanmalıyım?

3 Cevap php

Ben iki sınıf ClassA ve ClassB var. ClassA hep bir şablon dosya adı ihtiyacı ve ClassB Classa uzanır.

Bir ClassB örneği oluşturulur olağan durumlarda, kullanıcı şablon dosya adını belirtmek zorundadır. Gibi:

$classB = new ClassB('index');

Ama şimdi ben Classa uzanan bir ClassX oluşturulur ve kullanıcı ClassX kullandığında, o şey belirtmeniz gerekir. Bu sadece bir düğme oluşturur bir sınıf, yani bunun için şablon dosyası gibi ne olduğunu kendisi bilir.

Yani kullanıcı sadece aramak istiyor:

$bttn = new ClassX();

ve içten ClassA yapıcı 'button_template' ile denir.

Bunu yapmak için, ben bu seçimleri bakın:

A)

public function __construct() {
    $tplName = func_get_arg(0);
    if (!isset($tplName)) {
        $tplName = 'button_template';
    }
    parent::__construct($tplName);
}

Ya da B)

public function __construct($tplName='button_template') {
    if (!isset($tplName)) {
        $tplName = 'index';
    }
    parent::__construct($tplName);
}

Ya da C)

public function __construct($tplName='button_template') {
    parent::__construct($tplName);
}

Hangisi en iyi? Ve neden?

3 Cevap

Ben bu en iyi yol olduğunu düşünüyorum:

#Class A:
public function __contruct($template){
  //do stuff
}

#Class X extends A
public function __contruct(){
   parent::__construct('button_template')
}

Ben Sınıf A Sınıf C (Durum A) Ve C Sınıfı başka bir şey kabul etmemelidir ne istiyor endişe olmamalı, çünkü bu en iyi yoldur hissediyorum sonra buton_template (Vaka B ve C)

Ben kullanıcı şey belirten istemiyorum beri, belki de bu en iyisi:

(Soruyu yazdıktan sonra aklıma geldi!)

D)

public function __construct() {
    parent::__construct('button_template');
}

C)) kullanıcıya şablonu, D geçersiz kılma seçeneği sunar değil. Ben de kullanılabilir, sadece düğmeye şablonu (d) ya da herhangi bir şablonu kullanılabilir bağlı olarak bu iki ile gitmek istiyorum ama hiçbiri belirtilmemişse düğme varsayılan şablon tarafından kullanılan (c)