130 likes | 259 Views
Принципи на обектно-ориентиран дизайн. Общи бележки. Бележка-1: Ако е необходимо, се правят диаграми (UML-диаграми или помощни диаграми) за обясняване на принципите на ОО дизайн.
E N D
Общи бележки Бележка-1: Ако е необходимо, се правят диаграми (UML-диаграми или помощни диаграми) за обясняване на принципите на ОО дизайн. Бележки-2: Глава 3 е тясно свързана с материала за ООП, изложен в глава 2 "Принципи и техники на ООП". Затова е добре преди да се започне писането на тази глава, да се разгледа структурата и съдържанието на глава 2. Помощната презентация(записките) към глава 2 също може да бъде от полза.
Обектно ориентиран дизайн 1) За това какво представляват принципите за обектно-ориентиран дизайн + разликата в двете понятия "принципи за дизайн" и "шаблони за дизайн" виж двата абзаца в objectMentor: http://www.objectmentor.com/omSolutions/oops_what.html 2) За това какво представляват принципите за обектно-ориентиран дизайн прочетете встъпителните бележки на "Section II: Agile Design" от PPP-книгата на Robert C. Martin.
Признаци за лош обектно-ориентиран дизайн 1) За кратките обяснения на признаците (които се правят в списъка с признаци) вижте встъпителните бележки на "Section II: Agile Design" от PPP-книгата на Robert Martin. 2) Източници: "Principles_and_Patterns.pdf" Link -> http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf
Кохезия и свързаност (1) Бележка-превод: да помислим за превода на 2-те понятия. В wikipedia са преведени "кохезия" и "свързаност". Този превод ми звучи по-добре от превода в IntroJava-книгата. От личен опит да споделя, че като ги учих от IntroJava книгата и до момента не съм запомнил превода, защото звучи сложно и дълго.
Кохезия и свързаност (2) Източници: 1. SCJP-book, chapter 2 2. IntroJava-book, chap.20 3. Wikipedia 3.1) Кохезия -> http://bg.wikipedia.org/wiki/%D0%9A%D0%BE%D1%85%D0%B5%D0%B7%D0%B8%D1%8F 3.2)Свързаност -> http://bg.wikipedia.org/wiki/%D0%A1%D0%B2%D1%8A%D1%80%D0%B7%D0%B0%D0%BD%D0%BE%D1%81%D1%82 3.3) Loose coupling -> http://en.wikipedia.org/wiki/Loose_coupling 3.4) Cohesion -> http://en.wikipedia.org/wiki/Cohesion_%28computer_science%29
Програмиране по интерфейс, не по имплементация Източници: GoF book, chap.1,p.17-18
Предпочитайте композиция пред наследяване Източници: GoF book, chap.1,p.18-20
SOLID - принципи (1) Ресурси за SOLID-принципите: 1) PPP-book на Робърт Мартин, Section ІІ, chap.8-12 2)"Principles and Patterns" pdf-file: http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf 3)UncleBob: http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod 4) OODesign: http://www.oodesign.com/design-principles.html 5) ObjectMentor: http://www.objectmentor.com/omSolutions/oops_what.html 6) http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign
SOLID - принципи (2) Бележки: 1) Хубаво ще бъде да има диаграми при описание на SOLID-принципите, както е направено тук:Link1 -> "Principles and Patterns" pdf-file: http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf 2) Когато се прави кракто резюме на всеки от SOLID-принципите, може да се използват следните два източника, при които са направени такива резюмета: Link1 -> "Principles and Patterns" pdf-file: http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdfLink2 -> OODesign: http://www.oodesign.com/design-principles.html
SOLID - принципи (3) 3) За принципа "Open/Closed Principle" може да се спомене, че се използва в Spring MVC и по-точно в API-то за Controller. Виж книгата: "Expert Spring MVC And Web Flow - Apress 2006", chap.6 "The Controller Menagerie"
Полезни източници (1) • GoF-книгата"Design Patterns: Elements of Reusable Object-Oriented Software", Addison-Wesley, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides • PPP-книгата на Робърт Мартин"Agile Principles, Patterns, and Practices in C#", 2006, Robert C. Martin and Micah Martin • IntroJava-книгата"Въведение в програмирането с Java" ->http://www.introprogramming.info/intro-java-book/ • SCJP-книгата"SCJP-книгата Sun Certified Programmer for Java 5 Study Guide", Kathy Sierra and Bert Bates
Полезни източници (2) 5. "Principles and Patterns" pdf-file: http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf 6. OODesign: http://www.oodesign.com/design-principles.html 7. UncleBob: http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod 8. ObjectMentor: http://www.objectmentor.com/omSolutions/oops_what.html 9. http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign