PHP: OOP ve yöntemleri

2 Cevap php

I`ve been wondering how to implement methods in a class. Could someone explain me what means if one does OOP in procedural style?

İşte bir örnek:

class Fld extends Model {

  private $file;
  private $properties = array();

  public function init($file) { 
    $this->file = $file;
    $this->parseFile();
  }

  private function parseFile() {
  // parses the file
    foreach($this->file as $line) {
      //..................
    }
    $this->properties = $result;
  }

}

I mean is it a good thing to have methods like these that do operations for the class properties like that. Or should I pass the class property as method parameter... I mean this would cause error if the file property wouldnt be declared.

2 Cevap

Dosya itiraz için zorunlu ise, bu constructor bir parametresi olmalıdır.

class Fld extends Model {

    private $file;
    private $properties = array();

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

    public function parse() {
        foreach($this->file as $line) {
            /* ... */
            $this->properties = $result;
        }
    }
}

Sınıfı özelliklerinin herhangi birini kullanmak etmez sınıfındaki bir yöntem olduğunda, bu yöntem statik yapma düşünmek, hatta bu yöntem için ayrı bir sınıf oluşturmak gerekir.

Ben bir sınıf içinde yöntemler çok uzun ve karmaşık olma eğilimindedir zaman insanlar "usul tarzı OOP" gibi kod açıklamak düşünüyorum.

Martin Fowler kitabı 'Yeniden Düzenleme', onun kod parçaları daha küçük yöntemler içine kırılmış veya diğer sınıflara ayrılmış olabileceğini ima bir 'kod kokusu' olarak uzun bir yöntem açıklanır.

bkz: http://books.google.co.uk/books?id=1MsETFPD3I0C&lpg=PP1&dq=refactoring&pg=PA76#v=onepage&q&f=false

Senin kod gayet iyi olduğunu düşünüyorum. Sınıfının nesneleri nasıl atılabilir aklında sadece çıplak. Genellikle bu gibi bir 'ayrıştırma hizmet' kullanılan oluşturulabilir ve atılmalıdır. Bu devşirme ise o zaman karışıklığa neden eski özellikleri hakkında endişelenmenize gerek olmayacaktır.

Eteubert anlaşılacağı gibi, yapıcısındaki takım geçen müşterilerine nesne çok özel bir amaç için oluşturulan olduğunu bildirmek için yardımcı olur.