Описание тега fluent-interface

Относится к практике кодирования объектно-ориентированных API-интерфейсов с целью улучшения читабельности интерфейса, обычно реализуемой с использованием цепочки методов. Фраза была впервые придумана Эриком Эвансом и Мартином Фаулером.
1 ответ

Имеет ли смысл этот DSL для моего контейнера DI?

Поскольку я не являюсь носителем английского языка, лучше не создавать DSL, который будет звучать неловко для других. Контейнер DI возник из проекта, и я выделяю его как отдельный проект. Я вижу другие контейнеры DI/IOC, используя синтаксис, такой к…
1 ответ

Массив arg Expression<Func <object >> как часть свободного интерфейса

Рассмотрим такой интерфейс: new Provider().For(myClass).ExcludeProperties("Height", "Width"); public IEditableStateProvider For(object target) {...} public IEditableStateProvider ExcludePropertyNames(params string[] propertyNames) {...} Я хочу замен…
08 фев '13 в 13:13
2 ответа

Свободный API, Аннотации и EF 4.1

Может, кто-нибудь подскажет мне ссылки, которые объясняют Fluent API и аннотации при первом использовании кода EF 4.1? Чем глубже, тем лучше. Большое спасибо за вашу помощь заранее!
1 ответ

Динамически загружать конфигурации объектов в EF CodeFirst

Мне нужно создать составной ключ с плавным API динамически в соответствии со схемой базы данных. Я ищу решение, но не могу найти. Любое предложение, как это сделать?
26 авг '11 в 08:51
1 ответ

Как замыкания помогают в создании интерфейса DSL/fluent: примеры PHP?

Можете ли вы привести пример на PHP, который показывает, как замыкания полезны при создании DSL (свободный интерфейс)? редактировать: принятый ответ в следующем вопросе говорит о вложенных замыканиях. Если бы кто-то мог перевести этот пример на PHP,…
24 май '10 в 19:16
2 ответа

Castle Windsor: автоматическая регистрация типов из одной сборки, реализующих интерфейсы из другой

В качестве контейнера IoC я использую Castle Windsor. У меня есть приложение, которое имеет структуру, похожую на следующую: MyApp.Services.dll IEmployeeService IContractHoursService ... MyApp.ServicesImpl.dll EmployeeService : MyApp.Services.IEmplo…
1 ответ
0 ответов

Свободный API с несколькими общими параметрами и наследованием

Я пытаюсь реализовать свободный API, который содержит специализированные производные классы, и я использую Derived extends Base&lt;Derived&gt; способ получения this параметр как Derived из базовых методов, но, похоже, он не работает с несколькими об…
17 дек '16 в 19:25
1 ответ

Расширение свободного интерфейса

Я начинаю использовать Fluent Assertions, и мне это очень нравится, но мне интересно, возможно ли расширить существующие тесты в общем виде, например так: добавить метод hasSizeAtLeast(int limit) в GroupAssert добавить метод startsWithIgnoringCase(S…
11 июл '11 в 02:36
2 ответа

NHibernate: удаление коллекции и повторная вставка

У меня есть пользователь с соответствующими разрешениями. Вот что я хочу: Я создаю пользователя и добавляю разрешение в коллекцию User.Permissions. Это сохраняется, и все происходит, как ожидалось. Затем я редактирую пользователя и удаляю разрешение…
1 ответ

EF 4.1: Отображение отношения "многие ко многим" с помощью составных ключей и общего столбца?

Я использую EF 4.1 Code First и пытаюсь смоделировать следующее. public class Apple { public int Id {get;set;} } public class Banana { public int AppleId {get;set;} public int Id {get;set;} public virtual ICollection&lt;Coconut&gt; Coconuts {get;set…
6 ответов

Рефакторинг длинных методов с беглыми интерфейсами

Мне бы хотелось узнать ваше мнение об использовании свободного интерфейса для рефакторинга длинного метода. http://en.wikipedia.org/wiki/Fluent_interface Свободный образец не включен в книги по рефакторингу. например, скажем, у вас есть этот длинный…
14 сен '11 в 07:11
7 ответов

Свободные интерфейсы и наследование в C#

Я покажу проблему на примере. Существует базовый класс с удобным интерфейсом: class FluentPerson { private string _FirstName = String.Empty; private string _LastName = String.Empty; public FluentPerson WithFirstName(string firstName) { _FirstName = …
17 фев '10 в 06:36
2 ответа

Свободные интерфейсы в C#

У меня вопрос с беглыми интерфейсами. У нас есть некоторые объекты, которые используются в качестве объектов параметров для интерфейса SQL, вот пример: using (DatabaseCommand cmd = conn.CreateCommand( "SELECT A, B, C FROM tablename WHERE ID = :ID", …
20 окт '08 в 10:40
1 ответ

Почему моя коллекция EF не ленива?

Сначала я использую код EF 4.1. У меня есть модель пользователя и модель настройки.Каждый раз, когда хранилище возвращает пользователя, параметр также загружается. Я пометил параметр как виртуальный, все мои модификаторы доступа общедоступны. LazyLo…
1 ответ

Как я могу построить иерархию интерфейса для моего свободного API?

Я работаю над свободным API и пытаюсь использовать универсальные методы Java, чтобы предложить элегантный API, который обрабатывает преобразования типов для моих пользователей. Я сталкиваюсь с некоторыми проблемами, заставляя это работать, хотя, из-…
14 май '13 в 21:28
1 ответ

Entity Framework и дженерики

У меня есть пара независимых объектов, каждый из которых имеет список общих объектов. Например, public class Project { public IEnumerable&lt;CommentEntry&lt;Project&gt;&gt; Comments{get;set;} } public class Sample { public IEnumerable&lt;CommentEntr…
3 ответа

How to make a Build method as default to be invoked in a C# builder fluent interface

I need that, using a builder like the next code ... var foo = FooBuilder .WithSomething() .WithOtherthing(); или же var foo = FooBuilder .WithOtherthing() .WithSomething(); работает следующим образом: var foo = FooBuilder .WithSomething() .WithOther…
01 июн '13 в 12:11
6 ответов

Частичный вывод обобщенного типа возможен в C#?

Я работаю над переписыванием моего свободного интерфейса для своей библиотеки классов IoC, и когда я реорганизовал некоторый код для обмена некоторыми общими функциями через базовый класс, я наткнулся на загадку. Примечание: это то, что я хочу сдела…
23 май '10 в 22:11
3 ответа

Что такое свободный интерфейс?

Я недавно сталкивался с этим выражением - но чтение в Википедии не прояснило его для меня - я все еще не понимаю: Какой смысл в этом Как это используется на практике (то есть, как это приносит пользу программисту в их повседневной работе / строитель…
18 янв '10 в 07:34