接上一篇:
讲一下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。。他表示的意思是“成功”。