これが私の簡単なシナリオです。インターフェイスを実装したクラス (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();
私はそれを望んでいません。インターフェイス内で宣言されたメソッドのみに到達したい。