类问题的接口暗示
本文关键字:暗示 接口 问题 | 更新日期: 2023-09-27 18:36:53
这是我的简单塞纳里奥。我有一个实现接口的类(BLL类)。我想做的是,在前提层内部,我希望用户只访问接口并将类与此接互,而不是直接访问类函数。有什么办法吗?
我的 BLL 类实现接口:
public interface IOfis
{
bool Add(Ofis ofs);
bool Update(Ofis ofs);
}
public class BLL_Ofis:IOfis
{
public bool Update(Ofis ofs)
{
DAL_Ofis ofs_dal = new DAL_Ofis();
try
{
return ofs_dal.Update(ofs);
}
catch (Exception)
{
throw;
}
finally { ofs_dal = null; }
}
public bool Add(Ofis ofs_obj)
{
DAL_Ofis ofs_dal = new DAL_Ofis();
try
{
return ofs_dal.Add(ofs_obj);
}
catch (Exception)
{
throw;
}
finally { ofs_dal = null; }
}
}
在presantatoin层内部,我像这样使用它:
IOfis bll_ofis = new BLL_Ofis();
bll_ofis.Update();
但是在这种情况下,我也可以像这样直接到达班级:
BLL_Ofis bll_ofis = new BLL_Ofis();
bll_ofis.Update();
我不想这样。我只想访问在接口内声明的方法。
我不明白你为什么想要它,但"解决方案"可能是将public
方法更改为显式接口实现。为此,请删除访问修饰符(此处public
),并在方法名称前面加上IOfis.
。喜欢这个:
public class BLL_Ofis : IOfis
{
bool IOfis.Update(Ofis ofs)
{
...
}
...
}
仅当变量的编译时类型为接口类型时,才能调用显式接口实现。
还必须在类中实现方法Add
。至于可见性,请从类声明中删除public
,这将使它仅对驻留在同一程序集中的代码可见。