Fluent Interface

Слайд 2

Текучий интерфейс (англ. fluent interface) в разработке программного обеспечения – способ

Текучий интерфейс

(англ. fluent interface) в разработке программного обеспечения – способ реализации

объектно-ориентированного API, нацеленный на повышение читабельности исходного кода программы. Название придумано Эриком Эвансом и Мартином Фаулером.
Слайд 3

Передаваемый контекст определен с помощью значения, возвращаемого методом; наследуется (в качестве

Передаваемый контекст

определен с помощью значения, возвращаемого методом;
наследуется (в качестве нового контекста

используется предыдущий);
прекращается возвращением ничего не значащего значения (void).
Слайд 4

Пример var mark = db.Mark .Where(v => v.StudentId == student.Id) .Where(v

Пример

var mark = db.Mark
.Where(v => v.StudentId == student.Id)
.Where(v => v.DisciplineId ==

disc.Id)
.Where(v => v.SemestrId == semester.Id)
.FirstOrDefault();
Слайд 5

Пример без использования Fluent Interface var mark = db.Mark; mark.Where(v =>

Пример без использования Fluent Interface

var mark = db.Mark;
mark.Where(v => v.StudentId ==

student.Id)
mark.Where(v => v.DisciplineId == disc.Id)
mark.Where(v => v.SemestrId == semester.Id)
mark.FirstOrDefault();
Слайд 6

Продвинутое использование (пример из PHP) $books = BookQuery::create() ->useAuthorQuery() ->filterByName('Leo Tolstoi') ->endUse() ->find();

Продвинутое использование (пример из PHP)

$books = BookQuery::create()
->useAuthorQuery()
->filterByName('Leo Tolstoi')
->endUse()
->find();