前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计之接口行为的扩展 原

设计之接口行为的扩展 原

作者头像
克虏伯
发布2019-04-15 10:36:52
4420
发布2019-04-15 10:36:52
举报

    接口行为的扩展,经常面临这样的问题,之前已经定义好一个接口,且该接口已经在很多地方使用到,现在我们想让新增新方法。

    如下图1所示所示,已经定义了接口IVedioMedia,已经有RM和Mpeg实现了它。现在如果在IVedioMedia接口中新增resize()方法,那么就要连同RM和Mpeg一同修改,这已经违反了open-close原则,即在添加新功能的同时,不修改原有的、已经存在的代码。这时候我们应该定义新的interface接口——IResizable,之后新建RMAdapter来实现这个接口,同时让RMAdapter继承RM,这样就在实现新功能的同时,不修改IVediaoMedia和RM,做到了不修改已经存在的代码。

    由于项目的历史原因,经常会遇到这种问题,所以在这里记录下。

                                                        图1 

    建议读者阅读《软件设计精要与模式》的第14章,阅读原文。

Reference:

  1. 张逸著,软件设计精要与模式,第14章

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/10/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Reference:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档