排球计分程序(六)——接口的设计与实现

接下来,将进行接口的设计。这里包括数据访问层接口和业务逻辑层接口。在分层架构中,接口扮演着非常重要的角色,它不但直接决定了各层中的各个操作类需要实现何种操作,而且它明确了各个层次的职责。接口也是系统实现依赖注入机制不可缺少的部分。

本项目的接口设计将按如下顺序进行:
1.首先由前文的需求分析,列出主要的UI部分。
2.分析各个UI需要什么业务逻辑支持,从而确定业务逻辑层接口。
3.分析业务逻辑层接口需要何种数据访问操作,从而确定数据访问层接口。

 IAnnounceService接口:

用于发布公告时

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using 排球队伍公告信息.Models.Entities;

namespace 排球队伍公告信息.Models.Interfaces
{
    public interface IAnnounceService
    {
        /// <summary>
        /// 发布公告
        /// </summary>
        /// <param name="announce"></param>
        void Release(AnnounceInfo announce);

        /// <summary>
        /// 修改公告信息
        /// </summary>
        /// <param name="announce"></param>
        void Notify(AnnounceInfo announce);

        /// <summary>
        /// 删除公告
        /// </summary>
        /// <param name="id"></param>
        void Remove(int id);

        /// <summary>
        /// 取得公告详细内容
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        AnnounceInfo GetDetail(int id);

        /// <summary>
        /// 取得某个分类下的所有公告
        /// </summary>
        /// <param name="categoryId"></param>
        /// <returns></returns>
        List<AnnounceInfo> GetByCategory(CategoryInfo category);
    }
}

ICategoryService接口

用于公告发布后

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using 排球队伍公告信息.Models.Entities;

namespace 排球队伍公告信息.Models.Interfaces
{
     public interface ICategoryService
    {
        /// <summary>
        /// 添加分类
        /// </summary>
        /// <param name="category"></param>
        void Add(CategoryInfo category);

        /// <summary>
        /// 修改分类名称
        /// </summary>
        /// <param name="id"></param>
        /// <param name="name"></param>
        void ChangeName(int id,string name);

        /// <summary>
        /// 删除分类
        /// </summary>
        /// <param name="id"></param>
        void Remove(int id);

        /// <summary>
        /// 取得某个分类详细信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        CategoryInfo GetDetail(int id);

        /// <summary>
        /// 取得所有分类
        /// </summary>
        /// <returns></returns>
        List<CategoryInfo> GetAll();
    }

}

 
 
 
原文地址:https://www.cnblogs.com/sdl1305702018/p/7063884.html