zoukankan      html  css  js  c++  java
  • 排球计分程序(六)——接口的设计与实现

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

    本项目的接口设计将按如下顺序进行:
    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();
        }

    }

     
     
     
  • 相关阅读:
    英文社区优文转载和翻译:A Look at Gradient Descent and RMSprop Optimizers
    论文速读:《AN ACTOR-CRITIC ALGORITHM FOR SEQUENCE PREDICTION》
    英文社区优文转载和翻译:NLP vs. NLU —— from Understanding a Language to Its Processing
    Dell XPS13 新安装ubuntu16.04LTS 没有显卡没有声卡解决方案
    QWidget设置边框问题
    qss设置QTableView样式时,对于item项,border和selection_background-color不能放在一起,应该分开写
    QTableView绑定QTableModel单元格内数据居中
    QtCreator运行和调试按键是灰的,将鼠标悬在按键上提示:“The .pro file xx.pro could not be parsed.”
    Qt多线程run函数内访问类的成员变量在Linux系统中被优化的问题
    多线程中实现QUdp通信的方法
  • 原文地址:https://www.cnblogs.com/sdl1305702018/p/7063884.html
Copyright © 2011-2022 走看看