Pratik Bhuva
Рассмотрим следующий сценарий...
Я хочу разработать новую IDE.
Я буду оказывать поддержку различным базам данных, таким как mySql, oracle и т. д.
Теперь я разработаю один интерфейс
Interface MyInterface
{
public int Insert();
public List<object> Select();
}
Я передам этот интерфейс поставщикам БД для единообразной реализации.
Поставщики БД не позволили бы мне увидеть их реализацию этих методов.
Таким образом, чтобы получить доступ к этим методам, мне нужно создать ссылку MyInterface, и я назначу ссылку на объект классов поставщика БД.
Таким образом, я могу получить доступ к методам поставщиков БД, не видя их внутренней реализации кода.
DB Поставщик СУБД MySQL...
class MySqlDBProvider : : MyInterface
{
public override int Insert()
{
//here their Insert logic goes
}
public override List<Object> Select()
{
//here their Select logic goes
}
}
Oracle DBProvider...
class OracleDBProvider : MyInterface
{
public override int Insert()
{
//here their Insert logic goes
}
public override List<Object> Select()
{
//here their Select logic goes
}
}
Теперь мне нужно вот что...
using MyInterfaceNamespace;
using MySqlDBProviderNamespace;
public class MyClass
{
//here i will create reference of MyInterface
//and assign Object of Your DB Provider Class.
MyInterface MyIObj = new MySqlDBProvider();
MyIObj.Insert();
MyIObj.Select();
//I can do the same for Oracle
}
Надеюсь, вы понимаете важность этой функции в таком сценарии.
Надеюсь, Это Поможет
-----------------
Пратик Бхува