Абстрактный интерфейс - PullRequest
       6

Абстрактный интерфейс

0 голосов
/ 11 февраля 2012

Может ли кто-нибудь предоставить объяснение абстрактного шаблона интерфейса.

Книга "N-Layered Domain-Oriented Architecture Guide с .NET 4.0" содержит ссылку на этот шаблон, но без объяснения.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2012

Абстрактный интерфейс на самом деле не существует в C #.В C ++ у вас есть понятие «чисто абстрактный» класс, в котором все методы являются абстрактными, следовательно, это абстрактный класс, который определяет только интерфейс.

В C # вместо этого у нас есть ключевое слово «interface», котороеделает то же самое.

0 голосов
/ 11 февраля 2012

Я полагаю, что это означает наличие интерфейса, абстрактного класса, который реализует этот интерфейс, а затем нескольких неабстрактных классов, которые наследуются от абстрактного класса.В коде C #:

interface IFoo
{
    // interface members
}

abstract class FooBase : IFoo
{
    // implementation of IFoo and potentially some helper methods
    // some methods can be abstract, some virtual
}

class ConcreteFoo : FooBase
{
    // overrides abstract members of FooBase and potentially some virtual ones
}

Преимущество использования этого шаблона заключается в том, что он сочетает преимущества интерфейсов (гибкость) с преимуществами абстрактных базовых классов (реализация совместного использования).

...