PHP OOP Teorisi - içinde veya sınıf dışında denetleme hatası?

0 Cevap php

Ben tarihsel kurduğum her şey oldukça küçük olan ve cepten verimli bir seçim gibi görünmüyordu, tüm projeler için OOP kullanılarak geçiş ediyorum, ama şimdi büyük projeler ile öyle. Ancak son zamanlarda ben var daha "en iyi uygulama" sorular arasında geliyor oldum ve ben cevap bulamıyorum.

Örneğin, ben şu var düşünün:

class numbers{

    function __construct($number){
        $this->number = (int)$number;
    }

    function add($add){
        $this->added = $this->number + $add;
    }

    function multiply($multiply){
        $this->multiplied = $this->number * $multiply;
    }

    function minus($minus){
        $this->minused = $this->number - $minus;
    }

    function number(){
        return $this->number();
    }
}

Şimdi ben add, sonra da multiply uygulamak istiyorum ve daha sonra minus diyelim. Her aşamada muhtemelen (Ben örnekte olduğu içerir, ama orada hayal değil) başarısız olabilir. Ben yapmalıyım benim sorunum, burada yatmaktadır:

$numbers = new numbers(8);
if($numbers->add(7)){
    if($numbers->multiply(6)){
        if($numbers->minus(7){
            echo $numbers->number();
        }else{
            echo 'error minusing';
        }   
    }else{
        echo 'error multiplying number';
    }   
}else{
    echo 'error adding number';
}

Yoksa ben gibi, benim kurucusuna o bölümü olmalıdır:

class numbers{

    function __construct($number){
        $this->add(6);
        $this->multiply(9);
        $this->minus(7);
        if($this->error){
            return false;
        }else{
            return true;
        }
    }

    function add($add){
        $this->added = $this->number + $add;
        if(!this->added){
            $this->error = "couldn't be added";
        }
    }

    function multiply($multiply){
        $this->multiplied = $this->number * $multiply;
        if(!this->multiplied){
            $this->error = "couldn't be multiplied";
        }
    }

    function minus($minus){
        $this->minused = $this->number - $minus;
        if(!this->minused){
            $this->error = "couldn't be minused";
        }
    }

    function number(){
        return $this->number();
    }

    function error(){
        return $this->error();
    }

}

ve sonra sadece yapın:

$numbers = new numbers(5);
if($numbers){
    echo $numbers->number();
}else{
    echo $numbers->error();
}

Örneğin uzun soluklu ise özür dilerim (ayrıca ben sadece yapmaya çalışıyorum ne anahat için buraya yazdım, hataları görmezden, bu ben ... kullanıyorum kodu değil) ama ben bilmiyorum nasıl ifade etmek Bir örnek olmadan soru. Temelde, sınıfın içindeki hataları kontrol veya ben sınıf çağırdığınızda ben dışarıda yapıyor olmalıdır yapıyor olmalıdır?

0 Cevap