当前位置:编程学习 > C#/ASP.NET >>

这样的接口应该怎样定义,谢谢大家



这是“系统管理子系统”,该系统中的“类”是根据用例图抽象出来的,都是“用例对象”(定义成了类),“对象”(类)中有其对应的方法(增、删、改、查)。

现在想给该“系统管理子系统”定义一个接口,通过接口可以获取“用例对象”(定义成的类),然后完成相应的操作。
问题一:接口应该怎样定义???

应该是“其它子系统”中的方法实现“接口”中的方法,获取到“系统管理子系统”中的对象(类),然后进行操作对吧。

怎样定义接口,才可以返回对象(类)???

说说思路,最好给点实例。


附加描述:
一、类和方法说明:
1、CCUtility(公共操作类,其它管理类的基类)
  Check():查看操作。 Add():添加操作。Modify():修改操作。Delete():删除操作。
2、SystemUersManage(系统用户管理类)
  setPower():设置权限类。(继承自CCUtility的方法不在赘述)
3、ExpertManage(专家用户管理类)
4、SortManage(资料类别管理类)
  getChild():获取子类。 containsChild()是否包含子类。containsContent():是否包含资料。addChild():添加子类。
5、ProfessionalSortManage(煤矿专业分类管理类)
  containsContent():是否包含资料判断。
6、EnteringsAndLabelsManage(录入资料、标注管理类)
  showInfo():显示资料详细信息。setEnteringspass():设置录入资料通过。setLablespass():设置标注通过。statisticsEnterings():统计通过数量。statisticsLabels():统计标注数量。modifyEnterings():修改录

入资料。deleteEnterings():删除录入资料。modifyLables():修改标注。
  deleteLables():删除标注。
7、ShowingsManage(发布资料管理类)
  showInfo():查看资料明细。
  setState():设置资料装填。
8、BadWordsManage(过滤字管理类)


弟发了不少帖子了已经,近期就会吧所有的帖子都结了。您会发现帖子的分数都比较高,但是结的不及时。因为总是遇到新问题。不过各位大侠放心,小弟的帖子都会接,而且分数可观哦。。。
这也许是感谢各位对小弟帮助的最好的方式了。

--------------------编程问答-------------------- 1、首先预定义接口
using System;
using System.Collections.Generic;
using System.Text;
using Galsun.Test.Mode;
using System.Reflection;

namespace Galsun.Test.DALFactory
{
    public interface Ic_1000
    {
        c_1000info GetInfoByID(int ID);
        IList<c_1000info> GetInfoList(int pageindex, int pagesize, string ordfid, string cond);
        int GetRowCount(string cond);
        int Create(c_1000info info);
        int Update(c_1000info info);
        int Delete(int ID);
    }

    public sealed partial class DataAccess
    {
        /// <summary>
        /// 获取c_1000相应接口
        /// </summary>
        /// <returns></returns>
        public static Ic_1000 CreateIc_1000()
        {
            string className = path + ".c_1000";
            return (Ic_1000)Assembly.Load(path).CreateInstance(className);
        }
    }
}

2、继承接口,实现接口的方法
using System;
using System.Collections.Generic;
using System.Text;
using Galsun.DALProfile;
using Galsun.Test.DALFactory;
using Galsun.Test.Mode;
using System.Reflection;

namespace Galsun.Test.DALSQLServer
{
    public class c_1000:Ic_1000
    {
        private DBTool dal = new DBTool();
        /// <summary>
        /// 根据ID获取信息
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        public c_1000info GetInfoByID(int ID)
        {
            IList<c_1000info> infolist = GetInfoList(1, 1, " c_1001 ", string.Format(" Where c_1001={0} ", ID));
            return infolist.Count > 0 ? infolist[0] : new c_1000info();
        }
        /// <summary>
        /// 获取信息列表
        /// </summary>
        /// <param name="pageindex"></param>
        /// <param name="pagesize"></param>
        /// <param name="ordfid"></param>
        /// <param name="cond"></param>
        /// <returns></returns>
        public IList<c_1000info> GetInfoList(int pageindex, int pagesize, string ordfid, string cond)
        {
            Type type = Assembly.Load("Galsun.Test.Mode").CreateInstance("Galsun.Test.Mode.c_1000info").GetType();
            return dal.GetModelList<c_1000info>("c_1000", pageindex, pagesize, ordfid, cond, type);
        }
        /// <summary>
        /// 获取记录数
        /// </summary>
        /// <param name="cond"></param>
        /// <returns></returns>
        public int GetRowCount(string cond)
        {
            return dal.GetRowCount("c_1000", cond);
        }
        /// <summary>
        /// 创建记录
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public int Create(c_1000info info)
        {
            string query = "Insert Into c_1000(C_1002,C_1003,T_1002,C_1102,C1004,C1005,C1006,C1007,C1008,C1009) "
            + "values (@C_1002,@C_1003,@T_1002,@C_1102,@C1004,@C1005,@C1006,@C1007,@C1008,@C1009)";

            return dal.ExecuteNonQuery(query, dal.SetValueParam(info));
        }
        /// <summary>
        /// 修改记录
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public int Update(c_1000info info)
        {
            string query ="Update c_1000 Set  C_1002=@C_1002, C_1003=@C_1003, T_1002=@T_1002, C_1102=@C_1102, C1004=@C1004, C1005=@C1005, C1006=@C1006, C1007=@C1007, C1008=@C1008, C1009=@C1009"
                + " where c_1001 = @c_1001";
            return dal.ExecuteNonQuery(query, dal.SetValueParam(info));
        }
        /// <summary>
        /// 删除记录
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        public int Delete(int ID)
        {
            string query = string.Format("DELETE From c_1000 Where c_1001={0}", ID);
            return dal.ExecuteNonQuery(query, null);
        }
    }
}
//以上的定义称为DAL
3、通过接口进行二次开发,称为BLL
using System;
using System.Collections.Generic;
using System.Text;
using Galsun.Test.Mode;
using Galsun.Test.DALFactory;
using Galsun.Common;

namespace Galsun.Test.Content
{
    public class Organ
    {
        private It_1000 org;
        public Organ()
        {
            org = DataAccess.CreateIt_1000();
        }
        /// <summary>
        /// 获取指定标识部门信息
        /// </summary>
        /// <param name="id">记录标识</param>
        /// <returns></returns>
        public t_1000info GetOrganInfo(int id)
        {
            return org.GetInfoByID(id);
        }
        /// <summary>
        /// 根据部门编号获到记录
        /// </summary>
        /// <param name="OrganNum">部门编号</param>
        /// <returns></returns>
        public t_1000info GetOrganInfo(string OrganNum)
        {
            string cond = string.Format(" Where T_1002='{0}' ", OrganNum);
            IList<t_1000info> list = org.GetInfoList(1, 1, " T_1005,T_1001 DESC ", cond);
            return list.Count > 0 ? list[0] : null;
        }
        /// <summary>
        /// 获取指定子部门信息
        /// </summary>
        /// <param name="parent">部门编号</param>
        /// <returns></returns>
        public IList<t_1000info> GetOrganList(string parent)
        {
            string cond = string.Format(" Where T_1004='{0}' ", parent);
            return org.GetInfoList(1, 100, " T_1005,T_1001 DESC ", cond);
        }
        /// <summary>
        /// 获取部门列表
        /// </summary>
        /// <param name="pageindex">页码</param>
        /// <param name="pagesize">分页大小</param>
        /// <param name="ordfid">排序规则</param>
        /// <param name="cond">搜索条件</param>
        /// <returns></returns>
        public IList<t_1000info> GetOrganList(int pageindex, int pagesize, string ordfid, string cond, out int rowcount)
        {
            rowcount = org.GetRowCount(cond);
            return org.GetInfoList(pageindex, pagesize, ordfid, cond);
        }
        /// <summary>
        /// 创建部门信息
        /// </summary>
        /// <param name="info">部门信息</param>
        /// <returns></returns>
        public bool CreatOrgan(t_1000info info)
        {
            return org.Create(info) > 0;
        }
        /// <summary>
        /// 修改部门信息
        /// </summary>
        /// <param name="info">部门信息</param>
        /// <returns></returns>
        public bool UpdaOrgan(t_1000info info)
        {
            return org.Update(info) > 0;
        }
        /// <summary>
        /// 删除指定标识记录
        /// </summary>
        /// <param name="id">记录标识</param>
        /// <returns></returns>
        public bool DeleOrgan(int id)
        {
            t_1000info info = GetOrganInfo(id);
            if (info != null && info.T_1001 > 0)
            {
                foreach (string item in getChildId(info.T_1002).Split(','))
                {
                    org.Delete(Utils.StrToInt(item, 0));
                }
                return org.Delete(id) > 0;
            }
            else
            {
                return false;
            }
        }
        /// <summary>
        /// 获取所有子部门的记录ID
        /// </summary>
        /// <param name="parent">部门编号</param>
        /// <returns></returns>
        public string getChildId(string parent)
        {
            string _idlist = string.Empty;
            foreach (t_1000info item in GetOrganList(parent))
            {
                string _child = getChildId(item.T_1002);
                _idlist = (_idlist == string.Empty ? _idlist : _idlist + ",") + item.T_1001.ToString() + (_child == string.Empty ? _child : "," + _child);
            }
            return _idlist;
        }
        /// <summary>
        /// 获取所有子部门的编号
        /// </summary>
        /// <param name="parent">部门编号</param>
        /// <returns></returns>
        public string getChildNum(string parent)
        {
            string _idlist = string.Empty;
            foreach (t_1000info item in GetOrganList(parent))
            {
                string _child = getChildNum(item.T_1002);
                _idlist = (_idlist == string.Empty ? _idlist : _idlist + ",") + item.T_1002.ToString() + (_child == string.Empty ? _child : "," + _child);
            }
            return _idlist;
        }
    }
}

--------------------编程问答-------------------- 模板模式吧。虽然不太懂。定义个抽象的父类。让子类继承吧。 --------------------编程问答-------------------- 可以在子类中添加自己的方法。 --------------------编程问答--------------------
引用 1 楼 liuchaolin 的回复:
1、首先预定义接口
using System;
using System.Collections.Generic;
using System.Text;
using Galsun.Test.Mode;
using System.Reflection;

namespace Galsun.Test.DALFactory
{
    public interface Ic_1000……


好多啊。

能说说思路吗??? --------------------编程问答--------------------
DAL -> IDAL <-BLL --------------------编程问答-------------------- 不懂,帮顶 --------------------编程问答--------------------
引用 5 楼 liuchaolin 的回复:
DAL -> IDAL <-BLL


楼主看明白了吗?
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,