У тов. Anatolix такая подпись:
"Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев"
Мне кажется, что для такого подхода (введением дополнительного абстрактного слоя) нет исключений. А что вы думаете?
Re: Проблема слишком большого колл. абстрактных слоев
Здравствуйте IO, Вы писали:
IO>У тов. Anatolix такая подпись: IO>"Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев"
IO>Мне кажется, что для такого подхода (введением дополнительного абстрактного слоя) нет исключений. А что вы думаете?
Рад что моя подпись понравилась . На самом деле артефакты дизайна можно
спрятать один раз и больше никогда не трогать. Т.е. если ты не
собираешься программу модифицировать под слоем то OK а если собираешься
то тебе при этом еще и слой придется модифицировать.
Как кто-то сказал: любое обобщение неверно в том числе и это
(в смысле обобщение про то что любое обобщеение неверно)
Т.е. подпись на самом деле просто звучит красиво, а думать
то всегда надо.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[2]: Проблема слишком большого колл. абстрактных слоев
IO>>У тов. Anatolix такая подпись: IO>>"Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев"
Нужно сказать, что Layers — это не единственный архитектурный паттерн, хотя и самый распространнённый. Его главное достоинство и главный недостаток — разделение на слои. Есть ещё Pipes and Filters, на идее которого построен Unix. Есть Microkernel — это NT, есть ещё уйма всего. Но нельзя сказать, что все они взаимоисключающие, как раз в пересечении ищется оптимальная архитектура.
Re[3]: Проблема слишком большого колл. абстрактных слоев
Здравствуйте Mishka.NET, Вы писали:
M.NET>Нужно сказать, что Layers — это не единственный архитектурный паттерн, хотя и самый распространнённый. Его главное достоинство и главный недостаток — разделение на слои. Есть ещё Pipes and Filters, на идее которого построен Unix. Есть Microkernel — это NT, есть ещё уйма всего. Но нельзя сказать, что все они взаимоисключающие, как раз в пересечении ищется оптимальная архитектура.
Мне кажется, что все архитектурные паттерны могут быть представлены в виде какого-либо графа. Поэтому они все, как-бы частные случаи одного "мета-паттеррна" — сеть абстракций. А принципы построения адекватной сети в каждом конкретном случае — это и есть главное мастерство проэктировщика.
Re[4]: Проблема слишком большого колл. абстрактных слоев
Здравствуйте IO, Вы писали:
IO>Мне кажется, что все архитектурные паттерны могут быть представлены в виде какого-либо графа. Поэтому они все, как-бы частные случаи одного "мета-паттеррна" — сеть абстракций. А принципы построения адекватной сети в каждом конкретном случае — это и есть главное мастерство проэктировщика.
Это есть верно (sorry, русский уже стал забывать ). Проблема проектирования заключается не в том, что трудно найти решение, а в том, что существует слишком много решений. Опытный проектировщик знает, какие решения хорошие, а какие нет. В приведённом тобой примере это явно указано — есть огромное количество вариантов построения сети абстракций, некоторые из этих сетей в силу своей прикладной применимости выделены в разряд архитектурных паттернов.