childService为什么继承的Service而不是parentService

问题咨询 · dosenje · 于 6年前 发布 · 2472 次阅读

比如category的childService,image为什么不继承Image。

菜鸟一枚,说不出所以然,就是感觉怪怪的。

如果是有特别的,望说明解惑。

共收到 9 条回复
Fecmall#16年前 0 个赞

1.看不懂,说详细,语言勾画的就像一团乱糟糟的缠麻。

2.都是继承的 |fecshop\services\Service;

dosenje#26年前 0 个赞

@Terry #1楼 我是想问 fecshop\services\category\Image 为什么不继承 fecshop\services\Image

Fecmall#36年前 0 个赞

你自己追究这三个问题:

1.继承是用来干什么用的?

2.为什么要继承?

3.fecshop\services\category\Imagefecshop\services\Image 为什么要继承,为什么不继承?

先追究一天,然后贴上你的回答。

我感觉你的这个问题怪怪的,相互独立的services,为什么要继承? fecshop\services\category\Image 又不是基类

如果继承,就是强耦合,现在的services,每一个都是独立的,没有耦合,都是可以通过配置替换掉,重新实现里面的方法即可。方便重构扩展。

Fecmall#46年前 0 个赞

如果,fecshop\services\Image 我通过配置替换掉了,我重构了一个新的 xxxxx\services\Image ,

那么所有继承 fecshop\services\Image 的services 里面的extends都要修改,都要重写,对吧? 譬如,如果按照你说的方式, fecshop\services\category\Image 继承了 fecshop\services\Image,那么这个方法也要重写, 也就是在引入的时候,将 use fecshop\services\Image 改成 use xxxxx\services\Image 对吧?

是不是很费劲?所以services都是独立,没有耦合关系。

dosenje#56年前 0 个赞

@Terry #3楼 最近是在写一些东西,所以有很多东西想不明白。 以前都是直接拿别人的过来用。 所以现在写的时候会想一下为什么,自己想不到,就困惑了,暂时不想了,先把东西做完。 谢谢!

Fecmall#66年前 0 个赞

@dosenje #5楼 既然想思考,那么你就把你思考的内容贴上来,让我看到你思考的成果,而不是一拍脑袋想出来一个问题,随便思考一下,就贴上来,干巴的贴上来,而看不到任何思考的东西。

把你思考琢磨的思路都贴上来,这才是讨论思考问题的态度。

dosenje#76年前 0 个赞

@Terry [[#6楼](#comment6)](#comment6) 继承可以重写里面的配置和方法

如果我还有一个删除图片的方法 fecshop\services\category\Image.php

protected function actionSaveCategoryUploadImg($FILE)
    {
        Yii::$service->image->imageFloder = $this->imageFloder;
        Yii::$service->image->allowImgType = $this->allowImgType;
        if ($this->maxUploadMSize) {
            Yii::$service->image->setMaxUploadSize($this->maxUploadMSize);
        }

        return Yii::$service->image->saveUploadImg($FILE);
    }

    protected function actionRemoveImg($str)
    {
        Yii::$service->image->imageFloder = $this->imageFloder;
        Yii::$service->image->app = $this->app;
        return Yii::$service->image->removeImg($str);
    }

这样的话我需要传递多次配置信息。

如果是继承的Image,只需要属性覆盖就可以了。

Fecmall#86年前 1 个赞

1.然后看看我上面回复的内容,重构的问题,我如果新建了一个类来替换掉 fecshop\services\Image ,是不是 所以继承 fecshop\services\Image 的类都需要重构

2.有句话这么说,编码一时爽,重构火x场 ,大致就是这个意思,如果仅仅当时编码方便,service层都不需要加,直接用mvc就可以了。编码更快。

dosenje#96年前 1 个赞

@Terry #8楼 我又看了一下fecshop\services\category\Image和fecshop\services\product\Image

感觉我还是service层理解不到位,嗯,是这样!

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics