我们知道,大家提倡面向接口编程,但凡事都有个度,当滥用,那么面向接口完全流于形式。
一.首先,我们先讲一下面向约定编程。
企业编程中,都有一定的项目分层编程规范,如前台与后台逻辑之间的联系通过定义接口来完成。
正如我们平时使用的 MVC三层模形,service层,dao层很多都使用接口,那么新来者肯定也要遵守规范,在这三层使用接口。
就是大家约定成俗都使用接口而已。但请确记,你这不是面向接口编程,而是面向约定编程.
为什么这样说呢,请后面听我道来。
如果有如下几个特点,那么面向接口编程是流于形式的。
1. 定义的接口没有经过大脑设计
没有考虑是否有多实现,完全遵从于大家都是这样使用,那么可以确认,你现在是面向约定编程。
2. 接口方法过多
精心设计的接口,接口方法一般比较精简,才可能有多个实现类。而我们平时的业务接口,如果没有将不变及需要变化的接口分离,通通塞在一个大的接口类中,即使有多实现,这种结构也是不合理的,再次确认这种接口完全是遵照某种约定。
3. 是否符合面向接口的目的
使用接口的目的是"定义一个接口,可以有多个实现",因为你有可能连这个目的都不符合。
举一个例子
1。如我们有一个 UserDao接口,及一个IbatisUserDaoImpl实现,如果我们有跨数据库的使用需求(同时支持mysql,oracle),根据ibatis实际的使用需求,我们其实是不会有多个IbatisUserDaoImpl实现的,
因为实际的效果是,我们通过同一个实现类,只需要在执行查询时路由至不同的sqlmap及dataSource就行了,而一般不会做 IbatisOracleUserDaoImpl及IbatisMysqlUserDaoImpl这种实现方式。所以说你是使用ibatis的话,一般也是没有必要使用接口的。
2。如果你定义的接口UserDao,那么实现类的名称为 IbatisUserDaoImpl,HibernateUserDaoImpl,那么也是有问题的,既然已经选择的一个技术框架(Ibatis或者Hibernate),一般不会出来切换技术实现的需求,跨数据库倒比较实际,如MysqlUserDao,OracleUserDao.
二.撇开扩展性,那使用接口又有啥好处呢?
1. 通过接口比较容易浏览所有的接口方法,即没有繁杂的实现代码,更易于看懂
2. 接口不能实例化,避免使用者直接实例化后使用(类就有这种问题,直接实例化使用往往是错误的)
以上两个好处,也有足够理由支持我们使用接口。
三.那么我们应该怎么做?
1。除了面向约定使用的接口,其它的业务逻辑代码,如果没有必要使用接口的就不要使用接口,减少类的数量(太多类看着也很累人的)
2。如果定义的接口方法过多,重新审视一下,是否应该改进设计
分享到:
相关推荐
6. **API调用管理**:接口提供商会设定调用限制,防止滥用并确保服务稳定。开发者需要合理规划调用频率和次数。 7. **错误处理和异常恢复**:接口设计要考虑网络延迟、数据不一致等问题,提供有效的错误处理机制,...
1. 错误处理:对接口的调用可能会遇到网络问题、超时或服务器错误等,因此需要编写合适的错误处理代码,确保程序的健壮性。 2. 数据缓存:由于频繁请求可能会对服务器造成压力,因此可以考虑将近期获取的数据缓存...
9. **速率限制**:为了防止接口被滥用,通常会设置速率限制,限制单位时间内调用接口的次数。 10. **文档说明**:清晰的文档是API接口模板的重要组成部分,应详细说明每个接口的功能、参数、请求示例、响应示例以及...
使用OPEN-API时,开发者必须遵守相关法律法规,尊重用户隐私,不滥用用户数据,确保数据的安全传输与存储。 总结,航班管家的OPEN-API为开发者提供了丰富的航班信息资源,使得第三方应用能够无缝集成航班查询、...
2. **身份验证与授权**:为了防止恶意用户滥用接口,可能会实施身份验证机制,如API密钥,确保只有合法用户可以请求服务。 3. **限流控制**:描述中提到每天可以领取1000个赞,这暗示了接口存在限流策略,防止用户...
QQ易语言留言接口的核心功能自然是发送留言,要实现这一功能,开发者必须处理网络通信和数据格式化的问题。网络通信通常通过HTTP或HTTPS协议进行,而数据格式化可能涉及到JSON或XML。开发者需要根据QQ接口文档的指示...
7. **频率限制**:为了防止恶意攻击或滥用,接口通常会设置发送频率限制,如每个号码每天最多接收几条短信。 8. **错误处理**:合理的错误处理机制是必不可少的,如返回错误代码和错误信息,帮助调用方理解并解决...
通过头文件(header file)来声明接口,可以确保不同源文件之间的编译独立性,同时避免了全局变量的滥用。数据结构定义则构成了程序内部的数据模型,通过指针和结构体,C语言能够实现复杂的数据组织形式。 接口的...
API接口需具备良好的错误处理机制,当请求参数不正确或服务器端出现问题时,应返回清晰的错误代码和描述,方便开发者调试和修复。 8. **性能优化** 对于高流量的酒店预订服务,性能优化至关重要。这可能涉及到...
1. API密钥:为了防止滥用,接口通常需要开发者注册并获取API密钥,每次请求时都要携带此密钥。 2. 请求限制:接口可能会设定每日或每小时的调用次数限制,超出限制后会返回错误代码。 3. 权限级别:不同的API密钥...
随着脑机接口的普及,如何保护个人的脑部数据不被滥用成为必须考虑的问题。再者,成本问题也是推广的一大障碍。目前,高质量的脑机接口设备往往价格昂贵,限制了其广泛应用。最后,伦理问题也日益凸显,如何平衡技术...
5. **错误处理**:当请求参数错误或服务器出现问题时,接口会返回特定的错误代码和信息,帮助开发者调试和解决问题。 6. **安全考虑**:免登录发布接口可能增加垃圾信息的风险,因此Discuz! 可能内置了防止滥用的...
2. 错误处理:接口调用可能出现各种错误,如网络问题、参数错误、权限问题等,需要做好错误处理。 3. API限制:大部分音乐网站会限制调用频率,超出限制可能会被封禁,所以要合理控制请求次数。 4. 数据格式:接口...
1. 提供外联平台接口文档的技术咨询和指导,解决使用过程中的技术问题。 2. 对接医院和外部系统的技术团队,协助进行系统集成和数据交互的调试和优化。 3. 定期更新和发布外联平台接口文档的最新版本,确保系统的...
接口可能有并发调用限制、速率限制,以防止滥用。同时,数据加密、HTTPS等安全措施也是接口设计中不可或缺的部分。 8. **版本管理**:1.0.0.3版本表明这是一个更新迭代,可能包含了修复已知问题、增强性能、添加新...
需要注意的是,使用芝麻信用接口时,应遵守相关的法律法规和平台政策,保护用户隐私,不得滥用信用信息。 总之,芝麻信用接口Demo和文档是开发人员接入芝麻信用服务的重要工具。通过深入学习和实践,开发者可以熟练...
- 接口调用频率限制:金蝶云可能对API调用有频率限制,防止滥用。 - 错误处理:需要处理各种可能出现的错误状态,如网络错误、认证失败、资源不存在等。 - 安全性:确保在传输敏感信息时使用HTTPS,避免数据泄露...
9. **安全性**:短信接口的调用需要安全认证,例如API密钥、OAuth等机制,以防止未经授权的访问和滥用。 10. **费用模型**:短信服务通常按条收费,不同的服务商可能有不同的计费方式和价格。开发者需要关注费用...
使用音乐API时,必须遵守服务条款,防止滥用和侵犯版权。通常需要使用OAuth 2.0等授权协议来保护用户数据安全,确保只在用户授权的情况下访问他们的信息。 6. **开发示例** 开发者可以使用Python的requests库、...
- API接口的安全性至关重要,需要防止未授权访问、跨站请求伪造(CSRF)、API滥用等问题,可采用OAuth认证、JWT令牌等机制。 - 性能优化方面,可以考虑缓存策略(如Redis)、API限流、数据库读写分离、负载均衡等...