2012-07-03 48 views
0

我的查詢是關於架構和類的關係,我想知道更好的解決方案比我實施。php類的關係和如何擴展類

我有4個班,解釋每個

  1. core.php中類中的一個線,將所有常用的功能
  2. a.php只會類文件,其中包含了任務的特定功能像CSV文件寫入A.
  3. B.php類文件,其中包含任務B的特定功能,就像編寫另一個與csv A完全不同的csv文件一樣。
  4. X.php類是另一個特定於任務的類。

現在來看將使用所有4個類的通用腳本。所以我並不瞭解哪些類將擴展其另一個類

a.php只會和B.php

但x.php必須使用所有3類core.php中,a.php只會和B.php沒有關係。

目前我所做的,我爲核心類設計了一個接口,而x.php擴展了核心類和實現接口。我將A.php和B.php設計爲靜態類。

請指導

回答

2

你不extend類,如果他們什麼都沒有做與對方。您可以簡單地使用使用一個類在另一個類中,而這兩個類沒有任何關係繼承或接口方式。

您可以構建這樣的:

  • class Common是你基類每一個類從繼承和包含的通用代碼,所有的類都需要,說用於記錄或數據庫訪問代碼。
  • class A extends Common並且專門用於某些CSV相關任務。這個課程本身可能實際上也可能不實際做任何事情。
  • class B extends A而且甚至更專門化一些涉及CSV的特定任務。
  • class X extends Common並且又是一些其他任務。

一般來說,如果一個類的功能幾乎相同,但稍微專業化或不同,extend一個共同的基類。如果一個班級與另一個班級完全沒有共同之處,那就讓他們成爲獨立班級。使用interfaces進行多態性;這聽起來不像你現在需要的那樣。

0

這聽起來像基本的依賴管理。我不明白你爲什麼明確要擴展任何東西?

你可能應該做的是注入所需的依賴關係。在將它所依賴的對象實例化爲X之前分別實例化Core,AB