`
seadragonnj
  • 浏览: 59044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

究竟要不要接口?

阅读更多

解释一下,为什么需要接口而不直接实现类。

    在这个帖子里讨论了关于接口的使用,有一句话总结的很好:接口是定义行为规约的,抽象类是提供公共行为的,具体类是实现具体行为的。但定义归定义,在实际开发中,应该怎么用接口呢?目前主流技术中的接口是否过度使用?这些问题也许只有大牛(有极其多的项目经验)才能回答吧,俺等小子就不发表什么观点了,做做总结提高提高就行了。

    帖子中大多数是强烈支持面向接口编程的,但能看出大部分都是跟风,基本上都没有什么论据来支持这个观点,有的也就是从书上找到的解释接口的好处,但它给项目本身带来多少好处,基本上没人说上来,比如有人说接口可以实现多态,听上去很对,可实际项目又有多少会用到多态,不怕大家笑话,到现在我还没在项目中真正运用过多态,大多数情况下一个接口就是对应一个实现类,感觉就是为了接口而接口,本来这个帖子也没什么新意了,但由于axeon的横空出世,使得这个帖子有一些看点,最后边robbin老大也现身了,不过看来讨论的最后也就不了了之了,关于这个问题本来没有一个标准,从来是一个用来打口水仗的好题目,

       Axeon认为大多数情况下,接口无端的增加了代码的复杂性,并且在大多数情况下接口没起到它应该起的作用,或者说是我们一厢情意地认为用接口可以带来移植性、扩展性,可直到这个项目(产品)寿终正寝时,这些特性还没用到过。这就是我们一边叫嚣着要面向接口编程,一边又怀疑这么做有什么用的原因吧。在这个帖子里有一点说有很多,单元测试需要接口,只有面向接口编程才能很方便地进行单元测试。

       Axeon在帖子中说:任何一门技术,从最基础的经济学角度来说,都要满足多快好省的要求,才能不被淘汰,才能够淘汰别人。那么什么是多块好省呢?我的理解是要能够快速开发,运行还要高效。如果从这个观点来评判,我想思路会更加清晰的。如果从这个角度来说,接口的害好像大于利,应该摈弃,但为什么面向接口又这个流行呢,我想一定有它的道理吧!

只是俺愚钝,不明其义吧了,

       大段引用一下axeon的话

“新技术的特性必然要有需求与此对应,否则这个新特性就是屠龙术,仅仅有可吹嘘的本钱。另外,这个需求首先应该是业务需求,而不是解决自身问题的。因为技术最终是为业务服务的,通过业务来体现技术价值

从多快好省的角度上来说,java当前所谓框架的代表ssh,引导的是一个开发慢,运行慢的技术派系,他的所谓维护性和扩展性(或许)优势是不明确的,甚至是不存在的。开发效率和运行效率是最大的软肋。

为什么要接口?除了隐藏实现,那么就是多态。如果使用spring,有什么好隐藏的?更因为编译器就绑定实现了,怎么玩多态?如果为了庞大而好看,我建议你一个类里只写一个方法好了!

为什么要继承?而不用调用?相比较继承,调用是更清晰的关系,除非是必要继承,没事儿你继承什么?

更不说大把人用的springbeanFactory,更是笑死人了!这也是spring对他来说最重要的用处。首先如果只用单例,我干嘛不在类和方法上加上static?从实际使用上来说,spring通过hashmap来查找实例,而static是从内存直接调用,哪个更简单,效率更好,甚至零配置?

至于分层,更是笑话!曾经有一个帖子,抱怨招聘了一个技术高手,过来之后就会分层。结果招致群攻,简直笑死我了。我回了一个帖子,说了一句按需分层,竟然被评差贴。

一个项目的技术水平根本就不可以用是否使用ssh,是否分层来进行判断。更不说大把分层的代码里面仅仅是对上层的调用,但是如果程序需要改动,分层越多越难改,便于维护压根就是一个说辞。”

       可以看的出axeon是从实战出发的,姑且不说他的观点对不对,但至少很实在,是自己在做项目中的一些体验,比那些动动就空谈这个技术好,那个技术坏的的人强多了,但我想开发不能只追求多快好省,维护才是最重要的,用ssh的好处之一就是它将来便于维护(当然前提是你会用ssh

       这个问题很大。。。。。。。。。。。。。continuing

分享到:
评论

相关推荐

    要static还是不要static?

    我们将通过分析《要 static 还是不要 static?》这篇博客中的观点,结合具体的代码示例 `InnerInterfaceNotStaticTest.java` 来阐述这个主题。 首先,"static" 关键字在 Java 中主要负责声明类级别的变量和方法,而...

    计算机常见外部接口图解

    USB接口的4根线一般是下面这样分配的,需要注意的是千万不要把正负极弄反了,否则会烧掉USB设备或者电脑的南桥芯片: 黑线:GND 红线:VCC 绿线:DATA+ 白线:DATA- USB接口的连接线有两种形式,通常我们将其与...

    新浪、网易、腾讯实时tick接口_python股票_股票接口_新浪股票_tick股票_股票接口.zip

    同时,遵循各平台的使用协议,不要滥用接口,以免被封禁。 最后,将这些接口集成到你的项目中,可以创建一个统一的数据获取模块,封装好各个接口的调用方法,使得代码更加整洁和易于维护。这样,无论是进行实时监控...

    API接口手工防御被恶意调用和接口被攻击

    通常情况下的api接口防护有...本地加密混淆,以上提到的加解密数据和算法,不要直接放在本地代码,因为很容易被反编译和破解,建议放到独立模块中去,并且函数名称越混淆越难读越安全。 User-Agent 和 Referer 限制 ap

    九大视频接口知识解析

    - 建议VGA连接线的最大长度不要超过10米,以免造成图像质量下降。 - 连接过程中确保接头安装牢固,以避免图像出现虚影。 #### 6. DVI接口 (Digital Visual Interface) - **定义**:DVI接口是另一种广泛使用的...

    uniapp中点击按钮,请求接口时连续点击出现重复请求接口现象

    uniapp中点击按钮,请求接口时连续点击出现重复请求接口现象

    不会实现接口成员

    根据给定的信息,“不会...4. **实现细节**:在实现接口成员时,注意不要引入不必要的复杂性。尽可能保持简洁。 通过以上分析和解决方案,我们可以解决“不会实现接口成员”的问题,并确保代码符合良好的编程实践。

    支付宝接口对接流程

    - 注意不要关闭网页,等待其自动跳转完成。 6. **设置相关信息**: - 返回商户中心后,在相应位置设置“口碑店铺ID”和“支付宝折扣是否参与”等信息。 - 设置完成后,点击“确定”,完成对接。 #### 三、注意...

    (word完整版)USB接口定义介绍.doc

    文章强调了在使用 USB 接口时需要注意不要把正负极弄反了,否则会烧坏 USB 设备或者电脑的南桥芯片。 此外,文章还介绍了 USB 3.0 接口的定义和特点,包括其高速传输速度和兼容性。文章最后总结了 USB 接口的定义和...

    Android-简化支付宝微信支付接入目前支持支付宝即时到账交易接口有密退款接口微信统一下单退款接口

    本文将详细讲解如何简化这两种支付方式的接入流程,并重点介绍支付宝的即时到账交易接口、有密退款接口以及微信的统一下单和退款接口。 一、支付宝接入 1. 即时到账交易接口:这是支付宝提供的基础支付接口,允许...

    共享平台相关标准-服务接口

    04094_Web_Feature_Service_Implementation_Specification_V1.1.pdf 05007r7_Web_Processing_Service_WPS_v1.0.0.pdf 06042_OpenGIS_Web_Map_Service_WMS_Implementation_Specification.pdf 06083r8_OpenGIS_Web_...

    小程序web-view调用H5页面判断环境并发起小程序微信支付接口示例完整代码包

    可以进微信>>发现>>小程序搜索:飞机杯男用 进“飞机杯男用”这个小程序可以看我做的接口演示,当然小程序里面也有我的联系方式,可以通过小程序联系我,不忙的时可帮简单解答,虽然说这代码很完整但是要对接到自己...

    接口设计原则和方法.docx

    2. **数据格式**:在定义接口的数据格式时要格外谨慎,确保不会出现数据转换失败或超出长度限制等问题。如果不确定如何选择最合适的数据类型,则可暂时使用字符串作为通用解决方案。 3. **有意义的命名**:无论是...

    yahoo股票数据接口

    通过调用这个接口,我们可以获取到想要的股票信息,并进行进一步的数据分析或应用开发。 要实现一个Java应用程序来获取Yahoo股票数据,我们需要以下步骤: 1. **设置HTTP请求**:使用Java的HttpURLConnection或第...

    接口模式的制作DLL方法向导

    接口模式的制作DLL方法向导 释放的目标文件夹就是 DLL工程文件夹 释放完成后,输入DLL的文件名 ... 且建立的对象,如窗体等,都必须先要释放,否则释放DLL主程序会出错注:3、共享数据库组件 如TAdoconnection

    coolaf1.2.2接口在线压力测试版-windows64位

    1. 启动服务:运行压缩包内的`cl.exe`文件,会弹出一个对话框,这个对话框是用来显示服务的状态和相关信息,切记不要关闭它,因为服务需要这个进程来维持。 2. 访问测试服务:在浏览器中输入`...

    莲匸AI网站系统PHP源码 openai接口

    莲匸AI网站系统源码仅21kb,实现用户管理,一键添加接口,一键修改接口,在线ai5个模型聊天,文转图,图转图,并且实现5个不同...注意:请您把没一个页面文件打开仔细阅读批注并修改,最好不要用我的接口把我流量刷爆了

    api_打印接口参数

    在接口开放过程中,打印接口参数是一项非常重要的任务,它能够帮助开发者进行调试、排查问题以及理解接口的工作方式。本文将详细探讨"api_打印接口参数"这一主题,旨在提供一个全面的理解,包括其意义、实现方式以及...

Global site tag (gtag.js) - Google Analytics