|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
Кто знает конкретные примеры применения паттерна Builder в .NET Framework? Не самопальные абстрактные "собираем машину", "печём пиццу" и т. п., а применение в самой библиотеке .NET. Похоже, что при построении запроса в LINQ, что-то подобное используется, но мне не понятно где там конкретно Builder, ConcretBuilder и Director. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 11:50 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
.NET, в поделке Сережи Брина забанили? http://stackoverflow.com/questions/1316743/are-there-any-design-patterns-used-in-the-net-framework ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 12:14 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
Похоже на Builder вот такое сочетание Builder - System.IO.Stream ConcretBuilder - System.IO.FileStream Director - System.IO.StreamWriter Но тут не совсем ясно, что является продуктом и как его извлечь из Builder. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 12:14 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 12:24 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
.NETПохоже на Builder вот такое сочетание Builder - System.IO.Stream ConcretBuilder - System.IO.FileStream Director - System.IO.StreamWriter Но тут не совсем ясно, что является продуктом и как его извлечь из Builder. Не. Строитель создаёт объект. Конкретный строитель создаёт конкретный объект. Директор использует строитель и не знает какой конкретный строитель используется. Вот здесь очень хорошо описано: http://andrey.moveax.ru/post/patterns-oop-creational-builder ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 12:26 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 12:29 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВ.NET, в поделке Сережи Брина забанили? http://stackoverflow.com/questions/1316743/are-there-any-design-patterns-used-in-the-net-framework По этой ссылке в одном из комментариев приводится полезный список автор Abstract Factory: System.Data.Common.DbProviderFactory. Every member function of this class is a factory method. Builder: The WCF channel construction infrastructure. Factory Method: System.Data.IDbConnection.BeginTransaction(). The type of transaction created depends on the underlying IDbConnection implementation. WebRequest.Create() returns a concrete type that depends on the URL scheme. Prototype - used in framework for cloning and serialization Singleton - used as an activation method in WCF, i.e. a web service may be treated as a singleton by the WCF infrastructure. Ditto for .NET Remoting. Structural patterns Adapter: The ADO.NET providers, eg System.Data.SqlClient.SqlConnection, System.Data.OleDb.OleDbConnection etc. Each provider is an adapter for its specific database. Composite: many examples System.Windows.Forms.Control and its derived classes. System.Web.UI.Control and its derived classes. System.Xml.XmlNode and its derived classes. Decorator: System.Windows.Controls.Decorator (in WPF). Some implementations of Stream are decorators around an inner stream (e.g. GZipStream, CryptoStream). Facade: System.Xml.Serialization.XmlSerializer. XmlSerializer hides a complex task (that includes generating assemblies on the fly!) behind a very easy-to-use class. Proxy: The web service proxies generated by svcutil.exe and deriving from System.ServiceModel.ClientBase<TChannel> Behavioral Patterns Chain of responsibility: System.Web.UI.Control.OnBubbleEvent() and System.Web.UI.Control.RaiseBubbleEvent(). Command:System.Windows.Input.ICommand (in WPF). Interpreter: System.Linq.Expressions.Expression and related classes. Iterator: many examples System.Collections.IEnumerable. System.Collections.Generic.IEnumerable<T>. System.Data.IDataReader. Memento: The .NET Serializable pattern is a variation on the Memento pattern. Observer - The .NET event mechanism. Strategy - Sort method in ArrayList Template Method - Render method for custom controls Visitor : System.Linq.Expressions.ExpressionVisitor Но тут ничего не говорится по паттерн Bridge. Есть идеи где применяется Мост в .NET? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2016, 19:39 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVosttДиректор использует строитель и не знает какой конкретный строитель используется. Директор: Так, надо построить кирпичную стену. Эй, ты, будешь кирпичи класть! Строитель: Я крановщик. Директор: Ничего не знаю, клади, блеать! Какой-то сомнительный паттерн. Или описание. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2016, 00:29 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
Antonariy Какой-то сомнительный паттерн. Или описание. Они почти все сомнительные. Нормальные или встроены в язык (энумератор) или реализованы в виде библиотек (прослушиватель) или часто используются, например из-за отсутствия двойной диспетчерезации (ждем c# 7.0) (посетитель). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2016, 05:50 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
Antonariy Директор: Так, надо построить кирпичную стену. Эй, ты, будешь кирпичи класть! Строитель: Я крановщик. Директор: Ничего не знаю, клади, блеать! Какой-то сомнительный паттерн. Или описание. Для России самое то ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2016, 06:20 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВОни почти все сомнительные. Вы просто не умеете их готовить (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2016, 06:21 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVosttВот здесь очень хорошо описано: http://andrey.moveax.ru/post/patterns-oop-creational-builder судя по описанию, этот паттерн нормально применим разве что в setup-проектах, где пошаговость и разнообразность объектов (форм настроек) и составляет суть проекта. в прочие проекты его впендюривать смысла вообще нет, поскольку трудоемкость реализации объектов в разы превышает разницу между трудоемкостями реализации этого паттерна и какой-нибудь наколенки, решающей задачу пошаговости в лоб. он вообще не сокращает трудозатраты (в сферическом проекте пошаговых процессов раз-два и обчелся), а скорее всего даже увеличивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2016, 10:51 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
Antonariyсудя по описанию, этот паттерн нормально применим разве что в setup-проектах, где пошаговость и разнообразность объектов (форм настроек) и составляет суть проекта. в прочие проекты его впендюривать смысла вообще нет, поскольку трудоемкость реализации объектов в разы превышает разницу между трудоемкостями реализации этого паттерна и какой-нибудь наколенки, решающей задачу пошаговости в лоб. он вообще не сокращает трудозатраты (в сферическом проекте пошаговых процессов раз-два и обчелся), а скорее всего даже увеличивает. ЭЭмм.. Я не понимаю смысла «впендюривать», зачем что-то куда-то впендюривать? Паттерны придуманы не для того, чтобы их впендюривали или использовали только потому, что они есть. Они решают задачи. Трудозатраты они сокращают в том смысле, что ты не выдумываешь решение, а применяешь его. И другие люди, которые придут на проект, сразу поймут что это и как это работает, так как с паттернами все знакомы. Строитель не редко используется в грамотно спроектированной системе. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2016, 15:56 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVosttЕвгенийВОни почти все сомнительные. Вы просто не умеете их готовить (с) Приведи 3 примера использования тобой паттернов в продакшене? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2016, 17:50 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВПриведи 3 примера использования тобой паттернов в продакшене? Универсальные: 1. Отправка уведомлений IMessageBuilder, конкретный билдер зависит от настроек, это может быть email, push, sms, запись в лог, что угодно. 2. Создание документов IDocumentCreator, конкретный билдер зависит от мета-типа, и его настроек во внутренней системе документно-реестрового учёта. Из предметно-конкретных: 3. Создание электронного паспорта энергетического обследования для выгрузки, валидации и передачи его третей стороне IEnergyPassportBuilder. Конкретный билдер зависит от версии паспорта и типа требуемого результата. Просил 3, получи. На деле их намного больше. Да, не все паттерны одинаково популярны, но совсем бесполезных нет, вы просто не умеете их готовить. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2016, 19:52 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
Antonariyрешающей задачу пошаговости Вот кстати один из камней преткновения, затрудняющий понимание паттерна. Конструирование объекта может представлять собой процесс более сложный, чем установка значений свойств. И это отличная точка безболезненного расширения и оптимизации, которую многие не понимают, или понимают не до конца. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2016, 20:05 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVostt, Более подробно можно хоть 1 пример? А то на первый взгляд ты натягивал голошу на тыкву.... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2016, 21:25 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВhVostt, Более подробно можно хоть 1 пример? А то на первый взгляд ты натягивал голошу на тыкву.... Ты спросил про 3 примера использования в продакшене, я ответил. Что теперь тебя смущает? Можешь пояснить свою мысль? А то у нас дискуссия в одни ворота получается по принципу "не ве-е-рю!". Давай как-то конструктивней что ли. Подробные примеры можно легко найти в опен сорсе, например, в Quartz этот паттерн активно применяется. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2016, 23:00 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
Antonariy Директор: Так, надо построить кирпичную стену. Эй, ты, будешь кирпичи класть! Строитель: Я крановщик. Директор: Ничего не знаю, клади, блеать! как раз директор не знает из чего конкретная стена будет строиться, о кирпичах он ничего не знает. не получится крановщика прислать вместо каменщика - интерфейсы несовместимы ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2016, 11:28 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
Изопропил, Директор ещё не знает какой национальности будет строитель ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2016, 17:49 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVosttИзопропил, Директор ещё не знает какой национальности будет строитель и не должен узнать даже в процессе строттельства ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2016, 20:11 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVosttПодробные примеры можно легко найти в опен сорсе, например, в Quartz этот паттерн активно применяется. Больше фундаментализма - Entity Framework, NHibernate. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 09:58 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
СмузиhVosttПодробные примеры можно легко найти в опен сорсе, например, в Quartz этот паттерн активно применяется. Больше фундаментализма - Entity Framework, NHibernate. Примеры можно приводить бесконечно, даже если очень захочется, отказаться от применения этого паттерна будет сложно. Зачастую толпы программистов даже понятия не имеют, что применяют тот или иной паттерн. Проблема возникает, когда программист начинает на паттерны смотреть под углом «А как же мне его применить и впендючить в проект, это должно быть очень круто?!» :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 15:10 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVosttПроблема возникает, когда программист начинает на паттерны смотреть под углом «А как же мне его применить и впендючить в проект, это должно быть очень круто?!» :) Что касается данного паттерна, для себя сделал вывод - удел фреймворков и прочих коробок. Флюент упрощает разобраться в хаосе настроек. В качестве прикладного подхода несъедобно и, возможно, вредно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 15:15 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
СмузиЧто касается данного паттерна, для себя сделал вывод - удел фреймворков и прочих коробок. Флюент упрощает разобраться в хаосе настроек. В качестве прикладного подхода несъедобно и, возможно, вредно. Если не очень сложно, можешь пояснить на основе чего сделаны такие выводы? Второй вопрос, если: — создание объекта сложнее, чем параметры его конструктора — создание объекта требует доступа к некоторым зависимостям, которых не должно быть непосредственно у Директора — код, который создаёт объект (Директор), не знает какой конкретно объект он создаёт (знает только базовый тип) и знает параметры, нужные для его создания — создание объекта может иметь сложные эффекты (например, создание объекта провоцирует создание также других объектов, необходимых для дальнейшей его жизнедеятельности) — создание объекта может провалиться из-за нарушения бизнес-правил, но это не является исключительной ситуацией — создание объекта подразумевает предварительно наполнение данными (самый яркий пример — заказ, это объект, но у него может быть большое количество товаров, подключенные программы лояльности, после создания заказ остаётся неизменным до конца жизни) как будешь выкручиваться? Мне кажется, я могу ещё раз повторить, вы просто не умеете его готовить ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 15:41 |
|
|
start [/forum/topic.php?fid=20&msg=39346056&tid=1400221]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 271ms |
total: | 442ms |
0 / 0 |