这样的接口应该怎样定义,谢谢大家
这是“系统管理子系统”,该系统中的“类”是根据用例图抽象出来的,都是“用例对象”(定义成了类),“对象”(类)中有其对应的方法(增、删、改、查)。
现在想给该“系统管理子系统”定义一个接口,通过接口可以获取“用例对象”(定义成的类),然后完成相应的操作。
问题一:接口应该怎样定义???
应该是“其它子系统”中的方法实现“接口”中的方法,获取到“系统管理子系统”中的对象(类),然后进行操作对吧。
怎样定义接口,才可以返回对象(类)???
说说思路,最好给点实例。
附加描述:
一、类和方法说明:
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;
}
}
}
--------------------编程问答-------------------- 模板模式吧。虽然不太懂。定义个抽象的父类。让子类继承吧。 --------------------编程问答-------------------- 可以在子类中添加自己的方法。 --------------------编程问答--------------------
好多啊。
能说说思路吗??? --------------------编程问答--------------------
DAL -> IDAL <-BLL --------------------编程问答-------------------- 不懂,帮顶 --------------------编程问答--------------------
楼主看明白了吗?
补充:.NET技术 , ASP.NET