嗨,大家好,我試圖把我的頭圍繞接口應該保持的位置。PHP/Zend程序體系結構和接口
一個例子:
我有一個Zend MVC多模塊應用程序,我一直在努力,並希望把它清理乾淨(它是一個真正的混亂)
模型對象包括但不限於:
Model_Order
Model_Order_Item
Model_Order_Item_Location
Model_Product
Model_Customer
Model_Warehouse
Model_Warehouse_Location
Model_Warehouse_Location_Position
dependencies include:
Model_Order : Model_Order_Item (1 order to many items), Model_Customer (many orders to one customer)
Model_Order_Item : Model_Product (1 item has 1 product)
Model_Product : Model_Warehouse_Location_Position (a product could have many positions), Model_Customer (one to one relationship)
Model_Warehouse : Model_Warehouse_Location (one warehouse could have many locations (or bins) and different types)
Model_Warehouse_Location : Model_Warehouse_Location_Position (one location many product positions)
many of these are dependencies that traverse in both directions.
所以我的問題如下。
說到接口,以下哪一項比較合適?
Model_Order_Item_Product_Interface
Model_warehouse_Location_Position_Product_Interface
內部Model_Order_Item可以是方法setProduct(Model_Order_Item_Product_Interface $產品)
內部Model_warehouse_Location_Position可以是方法setProduct(Model_warehouse_Location_Position_Product_Interface $產品)
然後模型對象將是
Model_Product implements Model_Order_Item_Product_Interface, Model_warehouse_Location_Position_Product_Interface
或
我有一個接口概述產品(Model_Product_Interface)
和內部Model_Order_Item的方法可以是setProduct(Model_Product_Interface $產品) 但這意味着訂單需要它的「命名空間」之外的接口。 (BUT!而不是現在產品正在尋找它的「命名空間」之外讓所有它必須適合於該接口)
我不是100%肯定在哪裏把這些接口的
從域角度看作爲4個分離的團體訂單,產品,倉庫和客戶。具有設計在「模塊」/組內的接口是更好的,因爲它與此直接相關.......
我的大腦可以在這個問題上循環。我猜它更多的是個人喜好?
在一個側面說明我還打算用一個單獨的ServiceLocator返回奉獻給每組服務,並交回工廠和數據訪問對象(與其他服務相關的方法一起)在引導
我的想法是, zend我會盡我所有的依賴注入,所以我在一個地方。
我很感激你可以給我的任何建議。
你的問題似乎表明你不完全理解接口和類的使用。 'Model_Order_Item_Product_Interface'看起來像什麼?也許將這些接口中的一個作爲示例將使我們能夠爲您提供更多幫助。 – vascowhite