Lose.zhang 发表于 2013-1-4 02:21:41

面向服务架构~面向服务的API是统一接口还是具体业务使用具体的接口?

<div id="cnblogs_post_body">前言说明:这里说的"接口"并不是C#时的interface,而一般指定一个方法签名,它一般为外部提供一个GET请求,接口到请求后,进行处理,然后对调用方进行信息的返回.
回到本题中来,事件上,我们坐下来,认真去想想,还是统一接口的比较好,如果要具体业务使用具体接口,那它的具体接口肯定也是去再调用一下"那个统一的入口模块"的,注意,这里我说的是"模块",而不是"接口,类,方法等"
大体流程应该是这样:
客户端调用某个服务接口
接口系统
调用某体业务前的逻辑
    创建一个具体业务
调用某体业务后的逻辑
返回给客户端
对于一个服务端的代码要求应该是这样:
1 接口对外具有稳定性
2 对自己具体很好的扩展性(开闭原则)
3 每种具体业务都是独立的(单一职责原则)
对于上述要求,我设计如下代码:
<div class="cnblogs_code"> 1   /// <summary> 2   /// 对外统一接口模块 3   /// </summary> 4   public class SOA : Controller 5     { 6         /// <summary> 7         /// 统一接口方法,外面可以使用GET请求 8         /// </summary> 9         /// <param name="blockName"></param>10         /// <param name="param"></param>11         /// <returns></returns>12         public ContentResult UserAPI(string blockName, string param)13       {14             IAPI create = (IAPI)System.Reflection.Assembly.Load("dll").CreateInstance("namespace" + blockName);15             if (create.Create(param))16               return Content("成功");17             else18               return Content("失败");19       }20     }21 22   /// <summary>23   /// 建立API指定接口规范24   /// </summary>25   internal interface IAPI26     {27         bool Create(string param);28     }29 30   /// <summary>31   /// 添加购买动态的服务32   /// </summary>33   internal class AddBuyingNews : IAPI34     {35         public bool Create(string param)36       {37             return true;38       }39     }40 41   /// <summary>42   /// 添加用户等级的服务43   /// </summary>44   internal class AddUserLevel : IAPI45     {46         public bool Create(string param)47       {48             return true;49       }50   }
页: [1]
查看完整版本: 面向服务架构~面向服务的API是统一接口还是具体业务使用具体的接口?