美文网首页读书想法简友广场
重构之实现统计接口的动机

重构之实现统计接口的动机

作者: 皮皮杂谈 | 来源:发表于2019-06-26 00:09 被阅读9次

何谓统一接口,就是需要一个与子类具有相同接口的超类接口。找到所有子类含有而超类没有的公共方法。把这些方法复制到超类中,并修改每个方法,使其执行空行为。那么,我们在重构过程中实现统计接口的动机是什么呢?

为了多态地使用对象,对象的类需要共享一个通用的接口,无论是超类还是真正的接口。重构就是为了解决一个超类或接口需要含有与其子类相同的接口的情况。

一般在两种场合下需要使用这一重构技术。一种情况是,将装饰功能搬移到Decorator重构时,一个形成中的Decorator需要与其子类相同的接口。为了达到这一点,最简单的方法就是应用统一接口重构。类似的,将聚集操作搬移到Visitor重构的过程中如果某些对象可以共享同一接口,就可以去除重复代码,而这正是统一重构能够做到的。

对超类和子类应用这一重构后,有时会在超类上应用提炼接口重构,产生一个单独的接口。当抽象基类含有状态字段,而不希望这个通用基类的实现类,如一个Decorator,继承这些字段时,才会这么做。

统一接口重构通常只是为达到其他目的的途中的一个临时步骤。例如,执行了这一重构之后,可能还会执行一系列的重构来去除在统一接口时添加的方法。其他时候,在应用了提炼接口重构之后,抽象基类中的某个方法的默认实现可能就不再需要了。

相关文章

  • 重构之实现统计接口的动机

    何谓统一接口,就是需要一个与子类具有相同接口的超类接口。找到所有子类含有而超类没有的公共方法。把这些方法复制到超类...

  • 接口和抽象类该如何取舍

    抽象类和接口的区别在于使用动机。使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。 “面向接口编程”中...

  • 抽象类 vs 接口

    抽象类和接口的区别在于使用动机。使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。

  • Spring的学习

    接口和抽象类? 抽象类和接口的区别在于使用动机。使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。1....

  • 行为模式之Template Method 模式

    重构获得模式 Refactoring to Patterns 重构关键技巧 组件协昨模式 典型的模式 动机 M...

  • python web接口实现(restful方式、jsonrpc

    python web接口实现(restful方式、jsonrpc方式) 准备把自己写的烂网站重构一下,让有些功能能...

  • Spring之AOP之底层实现

    Spring之AOP之底层实现 静态代理实现 定义IStudnetService接口 定义StudentServi...

  • 本周工作总结

    这周完成的 在这周完善了活动模块的接口实现和数据统计,安卓前端完成的大部分后台接口的对接,实现了发布活动,加...

  • SpringSecurity开发基于表单的认证(五)

    实现图形验证码功能 开发生产图形验证码接口 在认证流程中加入图形验证码校验 重构代码 开发生产图形验证码接口 根据...

  • (jwt+dingo)和(passport+dingo)使用

    Laravel实现dingo+JWT api接口之配置篇Laravel实现dingo+JWT api接口之实战篇 ...

网友评论

    本文标题:重构之实现统计接口的动机

    本文链接:https://www.haomeiwen.com/subject/rmifcctx.html