tag:blogger.com,1999:blog-8596733192274108952.post8930117380719159499..comments2024-03-12T06:00:18.305+02:00Comments on Programming stuff: Open/Closed PrincipleSergey Teplyakovhttp://www.blogger.com/profile/14300835272589262297noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-8596733192274108952.post-44624293690337481102020-11-18T08:57:16.844+02:002020-11-18T08:57:16.844+02:00Сергей привет, а у тебя есть книга Мейера Object O...Сергей привет, а у тебя есть книга Мейера Object Oriented Software Construction 1988 - первое издание? Есть подозрение, что определение Мартина - это не определение Мартина, а что сам Мейер впервые дал такое определение в первой версии, а затем во втором издании 1997 года поменял его Алексейhttps://www.blogger.com/profile/05941418769390155641noreply@blogger.comtag:blogger.com,1999:blog-8596733192274108952.post-23327037257621372212015-03-15T23:13:40.189+02:002015-03-15T23:13:40.189+02:00У OcP много определений (вызывающих споры) и еще о...У OcP много определений (вызывающих споры) и еще одно, данное Ларманом, намного точнее того, что дал Мартин в любом из своих вариантов (даже от 2014г http://blog.8thlight.com/uncle-bob/2014/05/12/TheOpenClosedPrinciple.html)<br /><br />Modules should be both open (for extension; adaptable) and closed (the module is closed to modification in ways that affect clients). In the context of OCP, the phrase "closed with respect to X" means that clients are not affected if X changes.<br /><br />Второе предложение очень четко и лаконично определяет понятие closed. Совсем не так размыто как у Р.Мартина<br /><br />Anonymoushttps://www.blogger.com/profile/12944879592421071547noreply@blogger.comtag:blogger.com,1999:blog-8596733192274108952.post-84967646510185875722015-03-15T23:02:49.834+02:002015-03-15T23:02:49.834+02:00Неплохое описание, но все же не хватает фундамента...Неплохое описание, но все же не хватает фундаментальности.<br />Очень советую почитать по этой теме Craig Larman Applying UML And Patterns - Jon Skeet в своей статье как раз его и упоминал помимо Р.Мартина<br />По существу. Инкапсуляция и наследование - это далеко НЕ единственные методы/техники помогающие достичь OcP. Даже если брать сугубо OOA/D (хотя OcP применим и на других уровнях, например на уровне системной архитектуры в целом). Например, соответствие закону Деметры тоже помогает достичь OcP - код становится защищен (closed) от изменений в структуре данных (глава 25.4 третьего издания книги Лармана).<br />Ну и вообще у OcP крайне тесная связь с принципом Protected Variations и Information HidingAnonymoushttps://www.blogger.com/profile/12944879592421071547noreply@blogger.comtag:blogger.com,1999:blog-8596733192274108952.post-88877772256100730862014-09-22T16:42:22.241+03:002014-09-22T16:42:22.241+03:00Читаю ваши статьи. Пока ваши мысли насчет SRP и OC...Читаю ваши статьи. Пока ваши мысли насчет SRP и OCP совпадают с мыслями Марка Симана :)Anonymoushttps://www.blogger.com/profile/01424029736515314032noreply@blogger.comtag:blogger.com,1999:blog-8596733192274108952.post-26250820878791096882014-09-02T11:11:16.939+03:002014-09-02T11:11:16.939+03:00Спасибо! Наконец-то всё стало понятно.Спасибо! Наконец-то всё стало понятно.Karen Tazayanhttps://www.blogger.com/profile/17340270363445850237noreply@blogger.com