top
Loading...
Perl的面向對象編程(五)
十二、Perl類和對象的一些注釋
  OOP的最大好處就是代碼重用。OOP用數據封裝來隱藏一些復雜的代碼,Perl的包和模塊通過my函數提供數據封裝功能,但是Perl并不保證子類一定不會直接訪問基類的變量,這確實減少了數據封裝的好處,雖然這種動作是可以做到的,但卻是個很壞的編程風格。
注意:

1、一定要通過方法來訪問類變量。
2、一定不要從模塊外部直接訪問類變量。

  當編寫包時,應該保證方法所需的條件已具備或通過參數傳遞給它。在包內部,應保證對全局變量的訪問只用通過方法傳遞的引用來訪問。對于方法要使用的靜態或全局數據,應該在基類中用local()來定義,子類通過調用基類來獲取。有時,子類可能需要改變這種數據,這時,基類可能就不知道怎樣去尋找新的數據,因此,這時最好定義對該數據的引用,子類和基類都通過引用來改變該數據。
  最后,你將看到如下方式來使用對象和類:
  use coffee::Bean;
  這句語句的含義是“在@INC數組所有目錄的Coffee子目錄來尋找Bean.pm”。如果把Bean.pm移到./Coffee目錄,上面的例子將用這一use語句來工作。這樣的好處是有條理地組織類的代碼。再如,下面的語句:
  use Another::Sub::Menu;
  意味著如下子目錄樹:
  ./Another/Sub/Menu.pm

北斗有巢氏 有巢氏北斗