博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接口开发原则
阅读量:4977 次
发布时间:2019-06-12

本文共 1277 字,大约阅读时间需要 4 分钟。

在整个项目开发中,业务层开发是一个逻辑整合的过程,既参考前台展示又参考DB层的提取。

 

它是前台数据和DB数据相互转换的机器,既向前台提供系列接口,又调用DB提供的接口。

 

在接口定义中,又该如何把控。

 

个人建议:

1、接口有明确的目的

2、传入参数和传出参数要考虑接口的目的,不能整合代替

3、理解一目了然

 

举例:

A、需要一个最近100条前台展示的列表

接口传入:待输出条数

接口传出:一个集合

根据需要,可以指定特定的集合类型,比如DataTable,Reader等

在此,个人定义此接口:

 

/// /// 获取最近列表/// /// 指定列表条数,0=所有/// 
返回数据集
IDataReader GetThelastestList(int count);

 

B、指定范围内(此范围跟业务逻辑有关,不做特定描述),需要某用户的订单的产品数量,需要某用户已支付成功的产品数量

分析语句,在业务逻辑上,两个数据都需要使用(也许同时使用,也许不同时)

这里需要注意的,以下情况估计你也遇到过:

业务开发者,理解上述需求,告知DB层开发者:提供一个接口,需要XXX,YYY,ZZZ参数,返回数据集

如果开发团队是总体设计者+Coder,那么DB开发者,直接写就行了,描述清楚。

如果开发团队是总体设计+分层设计以及实现,那么所有分层设计之间的接口,必有一个设计文档,通过此文档分别分析,磨合调用相关的接口。若需要对方提供接口,应告知对方接口目的,由对方来设定接口的输入和输出。这样的话:上面的描述就会导致DB开发者不明了,输入和输出以及接口本身的意义,交流本身就是混乱的

 

分解下业务开发者的话:按照原描述意义,可以得知业务开发者需要的一个集合,这个集合有用的订单数量、成功支付的数量

整理下来数据集结构就是:

数量A    支付状态

数量B    支付状态

 

这样按照此思维,接口如下:

 

/// /// /// /// /// 
public IDataReader GetXXXXXXXCount(int userID)

 

 

按照原始需求,告知DB层开发人员,定义接口如下:

 

/// /// 获取用户下单的产品数量/// /// /// 
public int GetUserOrderCount(int userID);/// /// 获取用户成功支付订单的产品数量/// /// ///
public int GetUserBuyCount(int userID);

 

比较二者接口:

前者接口无法准确描述接口的性质和目的

后者一目了然的知道此接口用于何处

 

有时候,从DB层来说,数据的来源同一个,但接口输出却不能揉杂在一起

 

Ps:

接口性质,个人定义

列表类接口:返回一个集合

信息类接口:返回一个单(少量)记录集合或字段或空

操作类接口:返回一个状态或字段或空或影响数等

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/GoGoagg/archive/2010/09/10/1823308.html

你可能感兴趣的文章
用队列和链表的方式解决约瑟夫问题
查看>>
python 迭代器与生成器
查看>>
[django]form的content-type(mime)
查看>>
仿面包旅行个人中心下拉顶部背景放大高斯模糊效果
查看>>
强大的css3
查看>>
c#中的组件拖拽和MouseMove事件
查看>>
C# 小叙 Encoding (二)
查看>>
CSS自学笔记(14):CSS3动画效果
查看>>
项目应用1
查看>>
图片延迟加载的实现
查看>>
解密个推持续集成
查看>>
基本SCTP套接字编程常用函数
查看>>
C 编译程序步骤
查看>>
页面抓取匹配时,万恶的\r,\n,\t 要先替换掉为空,出现匹配有问题,都是这个引起的...
查看>>
利用Node.js调用Elasticsearch
查看>>
构造函数
查看>>
LeetCode N-Queens
查看>>
jstat 命令
查看>>
leetcode[155]Min Stack
查看>>
《代码不朽:编写可维护软件的10大要则(C#版)》读后感
查看>>