(原创)面向对象的系统对接接口编写。第3篇

接上一篇:http://www.cnblogs.com/mazhiyuan/p/5224049.html

讲一下Factory.cs工厂类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ZGMZ.UIL.App
{
    /// <summary>
    /// app功能入口
    /// </summary>
    public class Factory
    {
        private Factory() { }
        private static Factory factory = new Factory();
        /// <summary>
        /// app工厂
        /// </summary>
        /// <returns></returns>
        public static Factory AppFactory()
        {
            return factory;
        }
        /// <summary>
        /// 返回:用户操作入口
        /// </summary>
        /// <returns></returns>
        public ZGMZ.UIL.App.User.Index GetUserFacade()
        {
            return ZGMZ.UIL.App.User.Index.GetInstance();
        }
        /// <summary>
        /// 返回:新闻操作入口
        /// </summary>
        /// <returns></returns>
        public ZGMZ.UIL.App.News.Index GetNewsFacade()
        {
            return ZGMZ.UIL.App.News.Index.GetInstance();
        }
        /// <summary>
        /// 返回:品牌操作入口
        /// </summary>
        /// <returns></returns>
        public ZGMZ.UIL.App.Brand.Index GetBrandFacade()
        {
            return ZGMZ.UIL.App.Brand.Index.GetInstance();
        }
        /// <summary>
        /// 返回:通用方法操作入口
        /// </summary>
        /// <returns></returns>
        public ZGMZ.UIL.App.Common.Index GetCommonFacade()
        {
            return ZGMZ.UIL.App.Common.Index.GetInstance();
        }
        /// <summary>
        /// 返回:群操作入口
        /// </summary>
        /// <returns></returns>
        public ZGMZ.UIL.App.Group.Index GetGroupFacade()
        {
            return ZGMZ.UIL.App.Group.Index.GetInstance();
        }
    }
}

代码解说 :
private Factory() { }    声明这是个私有的构造函数,不可以被外部实例化
public static Factory AppFactory()    内部返回factory的实例化对象。这是一个静态的,一旦实例化,在生命周期内,会一直在内存中,不用一直重复创建和释放实例。
public
ZGMZ.UIL.App.User.Index GetUserFacade()   
取各模块的操作入口。返回的是该模块的实例对象。比如这个代码,返回的是用户模块的实例对象。以后接口凡是要调用与用户相关的部分,都从这个工厂入口进
入。不会有第2个入口。

接着讲Code.cs文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ZGMZ.UIL.App
{
    /// <summary>
    /// 返回的代码集合
    /// </summary>
    /// <creator>马志远</creator>
    public sealed class Code
    {
        private Code() { }
        /// <summary>
        /// 消息ID
        /// </summary>
        /// <author>马志远(Marc)</author>
        public string CodeId { get; private set; }
        /// <summary>
        /// 消息描述
        /// </summary>
        public string Description { get; private set; }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="productType"></param>
        /// <author>马志远(Marc)</author>
        public Code(string codeId, string descripion)
        {
            this.CodeId = codeId;
            this.Description = descripion;
        }
        public static readonly Code Success = new Code("100", "成功");
        #region 200错误系列是基础性的
        public static readonly Code Fail = new Code("200", "失败");
        public static readonly Code FailActionIsNull = new Code("201", "参数Action必须");
        public static readonly Code FailActionIsNotExists = new Code("202", "参数Action传值不正确");
        public static readonly Code FailHttpMethodError = new Code("203", "Http请求方式不正确");
        public static readonly Code FailParameterFormatIsNotValid = new Code("204", "参数格式不正确");
        public static readonly Code FailParameterIsNull = new Code("205", "参数未赋值");
        public static readonly Code FailDeserialize = new Code("206", "反序列化失败");
        public static readonly Code FailEntityIsNotGet = new Code("207", "对象未获取");
        public static readonly Code FailEntityIsExists = new Code("208", "数据已经存在");
        public static readonly Code FailMoreEntity = new Code("209", "存在多条记录");
        #endregion
        #region 300错误系列是关于用户的
        public static readonly Code FailMobileIsRegisted = new Code("300", "手机号已经注册");
        #endregion
        public static readonly Code FailServer = new Code("500", "服务器内部错误");
    }
}

代码细说:
这个Code.cs文件,作用就一个:定义相应的消息码以及说明。

public sealed class Code    声明这个类是不可以被继承的。
private Code() { }    声明这个类是私有的,不可以被外部实例化。
public string CodeId { get; private set; }    定义一个消息码的属性访问器。
public string Description { get; private set; }    定义一个消息说明的属性访问器。
public Code(string codeId, string descripion)    定义一个构造函数
public static readonly Code Success = new Code("100", "成功");    然后就是一系列的自定义消息码了。本代码的意思是,约定一个消息码为100。。他表示的意思是“成功”。

当你愿意看到这里时,后续还有4篇:下面是链接:

(原创)多系统间需要对接,我写了一个接口框架。实用性非常强,写出来大家交流。需要的可以直接搬过去用。(第1篇) http://www.cnblogs.com/mazhiyuan/p/5224046.html

(原创)面向对象的系统对接接口编写。第2篇 http://www.cnblogs.com/mazhiyuan/p/5224049.html

(原创)面向对象的系统对接接口编写。第3篇 http://www.cnblogs.com/mazhiyuan/p/5224050.html

(原创)面向对象的系统对接接口编写。第4篇 http://www.cnblogs.com/mazhiyuan/p/5224054.html

(原创)面向对象的系统对接接口编写。第5篇(完结) http://www.cnblogs.com/mazhiyuan/p/5224056.html

如果看完,有不明白的可以评论发给我。

真的很好用的。。有需要做接口的同学。。可以把整个框架拿去用下。

时间: 2024-10-29 02:54:18

(原创)面向对象的系统对接接口编写。第3篇的相关文章

(原创)面向对象的系统对接接口编写。第5篇(完结)

接上一篇:http://www.cnblogs.com/mazhiyuan/p/5224054.html 本篇是完结篇.主要讲如何开始调用了,以及如何控制必须是Get请求或者必须是POST请求,是怎么限定住的. 如上图,我们以新闻模块为例子,创建一个News.ashx的前端处理文件 <%@ WebHandler Language="C#" Class="News" %> using System; using System.Web; using Syst

(原创)面向对象的系统对接接口编写。第4篇

接上一篇:http://www.cnblogs.com/mazhiyuan/p/5224050.html 这篇开始写Post和Get请求的布局. 我们就以新闻模块来举例吧.其它的模块,比如用户啦,比如音频模块啦,依样画葫芦,都一样的. 先创建一个新闻模块的文件夹.我们叫“News" 然后,如上图1,2,3共三个红圈.创建这3个文件. 我们先讲第2件文件:CommandType.cs CommandType.cs文件,如上图.他就是一个枚举.里面定义了各种业务逻辑.比如里面有”添加新闻动态“.在这

(原创)面向对象的系统对接接口编写。第2篇

接上篇 http://www.cnblogs.com/mazhiyuan/p/5224046.html 讲:Post.cs文件的编写 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Script.Serialization; using ZGMZ.Common; namespace

用友系统与银行接口对接实现财务数据的导入

现在企业中针对银行的业务越来越多,并且针对银行收付款的业务占到财务工作的大部门时间,并且对收款单和付款单,财务需要对相应的收款单和付款单进行制单和对账的处理,面对目前财务遇到的最多的也是最着急解决的就是,如果将银行的收付款单能够批量导入用友,自动生成用友的收付款凭证,我们做了多年的用友软件实施和开发工作,针对财务提出来的这种普遍的问题,我们实现了银行接口和用友对接,实现将收款单的数据按照财务的规则批量导入用友的财务系统生成用友的收款财务凭证.将付款单批量导入银行接口中,然后银行进行付款,用友在获

[.net 面向对象编程基础] (16) 接口

[.net 面向对象编程基础] (16) 接口 关于“接口”一词,跟我们平常看到的电脑的硬件“接口”意义上是差不多的.拿一台电脑来说,我们从外面,可以看到他的USB接口,COM接口等,那么这些接口的目的一就是让第三方厂商生产的外设都有相同的标准,也是提供一个对外通信或操作的入口. 只是C#的接口除了以上特点之外,还具有一种类似于模板的功能,我们定义一组接口,就像是一个模板.这点和抽象类不同,抽象类是先有子类或都子类的概念,从中抽象出一个类.而接口更像是我们要设计一台机器,先把这台机器对外的功能接

系统间接口设计

最近两年一直在和银行.公安.保险.民政等第三方单位之间做接口,写的接口文档不下30份,最初的接口文档漏洞百出,改了又改,丢了不少人,也被批评.埋怨,指责了很多次,久而久之,明白了一个最重要的道理,协作决定接口.双方谈接口时,技术不是最重要的,要兼顾双方技术,成本,工期等等很多因素.但仍有很多技术层面的心得,恰巧上周参与温昱老师的一个性能设计的外训,里面老师讲到了接口设计,正好回来一起整理一下接口设计的经验.主要从3个方面总结一下系统间接口设计:接口定义.接口实现.其他一些注意事项. 一.接口定义

面向对象设计原则之接口隔离原则

接口隔离原则定义如下: 接口隔离原则(Interface  Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口. 根据接口隔离原则,当一个接口太大时,我们需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可.每一个接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干.这里的“接口”往往有两种不同的含义:一种是指一个类型所具有的方法特征的集合,仅仅是一种逻辑上的抽象:另外一种是指某

php面向对象 封装继承多态 接口、重载、抽象类、最终类总结

1.面向对象 封装继承多态  接口.重载.抽象类.最终类 面向对象 封装继承多态  首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一系列个体的集合,类是一个抽象的概念2.什么是对象?从类中拿到的具有具体属性值得个体,称为对象,对象是一个具体的个体 所以,面向对象即我们专注对象来处理问题,通过从一个个具有属性和功能的类中拿到对象来处理问题. 下面我们再来细说下面向对象的三大特征:继承/封装/多态 一.继承 在PHP中我们主要通关E

利用windows系统ftp命令编写的BAT文件上传[转]

利用windows系统ftp命令编写的BAT文件上传[转] 利用windows系统ftp命令编写的BAT文件上传[转] 在开发中往往需要将本地的程序上传到服务器,而且用惯了linux命令的人来说.在windows下就比较麻烦了.为了方便特编写一个BAT程序来帮助需要这样功能的人.如果用其他IDE工具自带的FTP功能也可以,^_^!      命令: todev.bat /index.asp  默认d:\cnweb为网站的根目录.      我的 http://www.lawcar.cn/ htt