Я полагаю, что это означает наличие интерфейса, абстрактного класса, который реализует этот интерфейс, а затем нескольких неабстрактных классов, которые наследуются от абстрактного класса.В коде 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
}
Преимущество использования этого шаблона заключается в том, что он сочетает преимущества интерфейсов (гибкость) с преимуществами абстрактных базовых классов (реализация совместного использования).