我正在为一个邻居做一个小的申请,目前我对这个设计非常困惑。一开始看上去很简单,但现在我被困住了。我理解遗产,因此,
场景:用户以其身份给商店送礼物(例如,给家人的礼物,给同事的礼物)。因此,有一个生日礼物是给一个同事,这是不同的礼物,一个家庭。用户指定他们喜欢使用的包装样式。(例如,折纸,西方)在这种情况下,假设给同事的生日礼物必须用折纸包装的生日风格。
但是我怎么把礼物和包装联系起来呢?一开始,包装在我看来像是一个界面。所以一个礼物实现了它。但是,包装每一种主要的包装样式都有子包装风格,这使得它变得复杂。同事的生日礼物如何知道要实现哪个接口?这似乎是生日,婚礼也应该是抽象的课程,因为只有第三代礼物课是一个具体的课程。
,我如何才能让这个设计变得有意义,但现在就很容易编写代码,并在以后有修改/改进的空间呢?

发布于 2014-11-01 03:35:27
礼品和包装是分开的实体,使用依赖注入。
Class wrapping{
protected $gift;
public __construct( $gift ){
$this->gift = $gift
}
public getGift(){
return $this->gift;
}
}
Class gift{
}
$g = new gift()
$w = new wrapper($g);这样你就不需要改变每一个新礼物的包装,或者每一个新包装的礼物。无论是接口礼物,还是使其抽象,都取决于功能。包装也是如此。不要将它们混合在“代码”级别,即使上面的图表显示它们是单独的对象。
就我个人而言,我要么会接口礼物,要么为它创建一个基本的抽象类。然后,你可以依靠未来的礼物,有你需要的代码包装。
哈刚刚意识到这是C,我是怎么做到的。无论如何,这个想法是一样的,即使它不是PHP。
干杯。
https://stackoverflow.com/questions/26685942
复制相似问题