设计模式之隔离宗的美女

接口隔离原则:客户端不应该依赖它不需要的接口,类间的依赖关系应该建立在最小的接口上。

小语跟神秘胖子前往隔离宗。

自从胖子来到了隔离宗的地界上,就神神秘秘的,时不时嘴角还露出一抹有些淫荡的笑,看的小语摸不着头脑。

“胖子,你怎么了?怎么总是浮现出让人恶心的笑?”

“嘿嘿~!你不知道隔离宗最出名的是什么嘛?”,胖子鬼鬼祟祟的说道。

“不知道啊!”小语更加挠头了。

“美女啊,美女,隔离宗盛产美女!到地方你就知道了。”胖子一脸坏笑的说道。

到了隔离宗…

胖子的眼睛就没有眨过,口水都流下来了。小语虽然没有那么不堪,不过也是看的眼睛发直,漂亮妹子太多了!

各种各样的美女,御姐型的、可爱型的,看的眼花缭乱,隔离宗真是名不虚传啊!

在隔离宗中间还有个大台子,上面挂着一个横幅,写着第37届选美大赛。

怪不得这么多美女啊,原来是选美啊!

这时,台子上,上去一个丰满的美女,说道:“欢迎大家莅临37届隔离宗选美大赛,选美大赛即将开始了,那么今年的选美标准跟往年有些不同,在这里我跟大家再次说明一下!”

“往年,我们的选美标准是相貌、身材和气质,三个标准权重并列,但是由于近年来整容风盛行,让人们对于外貌已经有点审美疲劳了,大家有时候更喜欢气质型美女,外貌和身材反而不那么看重了。所以今年我们的标准权重改一改,外貌和身材权重占比50%,气质单独占比50%!”说道这里,示意工作人员比赛可以开始了。

这时,胖子在旁边叹道,不愧是隔离宗,时时刻刻都遵循着接口隔离原则啊!

小语看着胖子,眨了眨眼,不知胖子何出此言。

胖子解释道,“你仔细想一下他们的选美标准,之前他们的美女标准是什么?”

“外貌、身材和气质啊!”小语答道。

“嗯,是的!之前的美女标准是只有符合这三点要求的才算是美女,但是现在呢?现在只要符合气质项,就可以称作是气质美女了!那么对于也许外貌和身材没那么好的气质美女来说,外貌和身材其实就是多余的评判标准了,所以现在的选美标准,气质占比50%!咱们用代码来描述一下!”

//旧的美女标准  必需实现三个方法的才算是美女
public interface Beauty {

    //外貌好
    void goodLooking();

    //身材好
    void niceFigure();

    //气质佳
    void greatTemperament();


}
//妖妖是个标准的大美女
public class YaoYao  implements Beauty{

    @Override
    public void goodLooking() {
        System.out.println("外貌优秀");
    }

    @Override
    public void niceFigure() {
        System.out.println("身材棒");

    }

    @Override
    public void greatTemperament() {
        System.out.println("气质佳");
    }

}

旧的评判标准必需符合外貌好、身材棒、气质佳的才算美女,放在以前是没有问题的,但是现在气质佳的就算美女了,那么馨馨是个气质型美女

//馨馨是个气质型美女
public class XinXin implements Beauty{


    //外貌好看 和身材棒 没有实现 因为馨馨可能够不上这两个的标准 那么根据接口隔离原则
    //不应该依赖不需要的接口 这两个接口就多余了 不符合接口隔离原则 
    @Override
    public void goodLooking() {

    }


    @Override
    public void niceFigure() {


    }

    @Override
    public void greatTemperament() {
        System.out.println("气质佳");
    }

}

根据新的标准,旧的接口不符合接口隔离原则,那么我们需要改良接口

//外貌身材好的美女
public interface GoodBodyBeauty {

    //外貌好
    void goodLooking();

    //身材好
    void niceFigure();


}
//气质型美女
public interface GreatTemBeauty {

    //气质佳
    void greatTemperament();


}

拆分为两个接口外貌身材好的美女接口,气质型美女接口,重新实现气质型美女馨馨

//馨馨是个气质型美女
public class XinXin implements GreatTemBeauty{
    

    @Override
    public void greatTemperament() {
        System.out.println("气质佳");
    }

}

妖妖这个最大的美女,可以这样实现

//妖妖是个标准的大美女
public class YaoYao  implements GoodBodyBeauty,GreatTemBeauty{

    @Override
    public void goodLooking() {
        System.out.println("外貌优秀");
    }

    @Override
    public void niceFigure() {
        System.out.println("身材棒");

    }

    @Override
    public void greatTemperament() {
        System.out.println("气质佳");
    }

}

如果只是外貌好看的美女,那么只实现外貌身材好的接口即可。
接口隔离原则细化了接口,给了我们更大的灵活性。

这时,选美比赛第一轮已经出了结果,妖妖是第一,馨馨是第二…

答疑:单一职责跟接口隔离原则的联系和区别
单一职责 类应该只有一个引起它变化的原因,这里的原因是一系列高内聚的方法来实现的职责,
单一职责强调的是类和接口的职责单一,接口隔离强调的是接口和类的方法尽量少!

更多内容,欢迎同步关注作者公众号二维码!
程序员内功修炼手册 主要发布计算机基础、设计模式、计算机网络基础知识,同时重点关注大前端知识
Android、iOS、web前端、Flutter、React Native等,想学习大前端知识的速度来吧,一起学习、一起成长!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值