我想问一个与php类有关的问题!我们假设我有一个客户的桌子,一张街道桌子和另一张叫做城镇的桌子。在OOP中,我必须假设我有一个客户班,一个街道班和一个城镇班。所以每个班级都与另一个班级有关,如下所示:
客户端: clientId,clientFirstname1,clientLastname1,clientAddress,clientStreetCode,clientTownCode,clientPostCode .....
Streets: streetCode,streetName,townCode
城镇: townCode,townName
我想问的是,如果我创建一个客户端记录,我应该将一个类扩展到另一个类,还是将它们保留为NOT EXTENDED,然后将它们作为单个类包含在php中?
答案 0 :(得分:1)
在OOP中扩展不是is-a
关系。就三个类Client
,City
,Street
而言,其中任何一个都不是is-a
个实例。
相反,你应该只使用引用。 Client
有Street
而Street
有City
。
class Client {
/**
* @var Street
*/
protected $street;
// ....
}
class Street {
/**
* @var City
*/
protected $city;
// ...
}
class City {
// ...
}
也许您还应该考虑引入一个新的课程Address
,其中包含对City
和Street
的引用,而不是Street
的引用City