• 面向接口编程


    近期在对一个现成项目进行修改、扩展。里面的代码很乱,业务逻辑、数据库操作全部都混合充斥在页面代码中。

    藉重构之机,当然首要是将业务逻辑和数据库操作从页面代码中剥离。在这里,我使用了接口。面向接口编程。写了一些具体的类来实现业务和数据库操作。这些类都继承接口;WEB端也通过接口来调用这些类,由简单工厂返回这些类的实例。这样,WEB、服务中间由接口分隔开,WEB只管调用,服务只管实现,大家都面向接口编程,各自独立地演化(靠,这是桥接模式?),酷吧?

    “有什么必要用到接口呢?”,同事问

    “如果业务逻辑变了,只修改服务即可,WEB可以不用改啊”,我教条地说

    “可是业务逻辑变了,通常接口也会变的吧,如果有接口的话;并且每次都要先改接口,再改实现类,麻烦得很”

    “哦……面向接口编程……是……设计模式原则之一……隔离……约定……@#%……¥……”我弱弱地搬出一些高大上的名词,试图装腔作势。


    究竟,面向接口编程的必要性在哪里呢?

    我想了一下,总结如下:

    1、调用与实现分离,利于修改和扩展

    2、逻辑清晰,令开发者赏心悦目,心情舒畅

    3、接口有约束性,利于统一

    4、接口要频繁更改,是设计的问题;另外,接口也应该尽量细粒度


    网上摘录:

    面向接口编程就是先把客户的业务提取出来,作为接口。业务具体实现通过该接口的实现类来完成。当客户需求变化时,只需编写该业务逻辑的新的实现类,通过更改配置文件(例如Spring框架)中该接口的实现类就可以完成需求,不需要改写现有代码,减少对系统的影响。采用基于接口编程的项目,业务逻辑清晰,代码易懂,方便扩展,可维护性强。
    但是我们为什么体会不出什么好处,因为我们的系统很小,协助开发较少,接口设计也不合理,往往需要变了接口也要变,理论上当需求变化的时候我们只需要修改接口实现。

    版权声明:本文为博主原屙文章,喜欢你就担走。

  • 相关阅读:
    Web开发实用网站资源
    Web开发实用网站资源
    Ubuntu的LAMP与相关软件安装设置
    Ubuntu的LAMP与相关软件安装设置
    试除法求最小N个素数之二
    试除法求最小N个素数之二
    Python程序-输出1000以内素数
    Python程序-输出1000以内素数
    Ubuntu安装MPICH3集群计算环境
    Ubuntu安装MPICH3集群计算环境
  • 原文地址:https://www.cnblogs.com/leftfist/p/4764242.html
Copyright © 2020-2023  润新知