首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这个设计需要接口吗?

这个设计需要接口吗?
EN

Stack Overflow用户
提问于 2014-11-01 03:25:13
回答 3查看 91关注 0票数 1

我正在为一个邻居做一个小的申请,目前我对这个设计非常困惑。一开始看上去很简单,但现在我被困住了。我理解遗产,因此,

  • 所有的礼物都必须包装好。
  • 礼物是一个抽象的类。
  • 包装样式是一个抽象类。
  • 生日礼物由礼物继承而来。
  • 折纸风格继承自包装风格。

场景:用户以其身份给商店送礼物(例如,给家人的礼物,给同事的礼物)。因此,有一个生日礼物是给一个同事,这是不同的礼物,一个家庭。用户指定他们喜欢使用的包装样式。(例如,折纸,西方)在这种情况下,假设给同事的生日礼物必须用折纸包装的生日风格。

但是我怎么把礼物和包装联系起来呢?一开始,包装在我看来像是一个界面。所以一个礼物实现了它。但是,包装每一种主要的包装样式都有子包装风格,这使得它变得复杂。同事的生日礼物如何知道要实现哪个接口?这似乎是生日,婚礼也应该是抽象的课程,因为只有第三代礼物课是一个具体的课程。

,我如何才能让这个设计变得有意义,但现在就很容易编写代码,并在以后有修改/改进的空间呢?

EN

Stack Overflow用户

发布于 2014-11-01 03:35:27

礼品和包装是分开的实体,使用依赖注入。

代码语言:javascript
复制
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。

干杯。

票数 -1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26685942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档