Wzorce projektowe to bardzo ważna część „zawodu” analityka i architekta oprogramowania. Dzisiaj kolejny raz studenci pytali o literaturę, więc postanowiłem poszperać na półce. O tym dlaczego powstały wzorce i jak sie je opisuje napisano wiele, nie będę więc powtarzał tego co na prawde łatwo znaleźć. Generalnie wzorce są to skatalogowane standardy i dobre praktyki .
Większość obiektowych wzorców projektowych dotyczy kwestii (rozwiązywania problemów) technologicznych. Myślę, że większość frameworków (zestawy bibliotek środowiskowych) to implementacje wzorców opisanych w książkach wymienionych poniżej . Warto je więc poznać z tego choćby powodu, by rozumieć jak one działają i dlaczego są takie jakie są.
Nieco później powstały wzorce architektoniczne, takie jak sztandarowy MVC (Model-View-Controller). Te przydają się na etapie analizy i projektowania na wysokim poziomie abstrakcji.
Lektura tych pozycji pokazuje ewolucje pojęcia paradygmatu obiektowego i pojęcia obiektu. Tak zwane „stare”, implementacyjne podejście z początków technik obiektowych pojmowanie definiowało obiekt jako połączenie danych i funkcji. Ta definicja nadal pojawia się u wielu autorów. Obecnie raczej stosujemy definicję mówiącą, że obiekt mają określoną odpowiedzialność, reprezentują określone zachowanie [Shalloway].
Tak więc polecam lekturę poniższych pozycji, duża rezerwę w stosunku do podawanych definicji. Praktycznie wszystkie te książki to wiedza z końca lat 90-tych. Od tamtej pory, zmieniło się wiele detali, jednak ogólna zasada polegająca na hermetyzowaniu wszystkiego co się da i na tym, że obiekt to określona wąska specjalizowana odpowiedzialność, nadal jest na czasie. Historyczna definicja mówiąca, że obiekty to dane i funkcje je przetwarzające, została już nie raz „obalona” za sprawą wzorców takich jak service czy factory, wskazujących że należy z zasady oddzielać odpowiedzialność za utrwalanie danych i odpowiedzialność za ich tworzenie i przetwarzanie.
Tak więc w wolnej chwili zapraszam do lektury, a także do pytań i dyskusji pod tym tekstem.
Literatura
{5085975:DQVI65GH};{5085975:8P6M5STE};{5085975:TBT7B5D2},{5085975:NVN9AR49}
harvard1
default
asc
no
23076
%7B%22status%22%3A%22success%22%2C%22updateneeded%22%3Afalse%2C%22instance%22%3A%22zotpress-8cfc50429a3a01c798dc0c94ef871db4%22%2C%22meta%22%3A%7B%22request_last%22%3A0%2C%22request_next%22%3A0%2C%22used_cache%22%3Atrue%7D%2C%22data%22%3A%5B%7B%22key%22%3A%228P6M5STE%22%2C%22library%22%3A%7B%22id%22%3A5085975%7D%2C%22meta%22%3A%7B%22creatorSummary%22%3A%22Gamma%22%2C%22parsedDate%22%3A%221995%22%2C%22numChildren%22%3A3%7D%2C%22bib%22%3A%22%3Cdiv%20class%3D%5C%22csl-bib-body%5C%22%20style%3D%5C%22line-height%3A%201.35%3B%20%5C%22%3E%5Cn%20%20%3Cdiv%20class%3D%5C%22csl-entry%5C%22%3EGamma%2C%20E.%20%28ed.%29%20%281995%29%20%3Ci%3EDesign%20patterns%3A%20elements%20of%20reusable%20object-oriented%20software%3C%5C%2Fi%3E.%20Reading%2C%20Mass%3A%20Addison-Wesley%20%28Addison-Wesley%20professional%20computing%20series%29.%3C%5C%2Fdiv%3E%5Cn%3C%5C%2Fdiv%3E%22%2C%22data%22%3A%7B%22itemType%22%3A%22book%22%2C%22title%22%3A%22Design%20patterns%3A%20elements%20of%20reusable%20object-oriented%20software%22%2C%22creators%22%3A%5B%7B%22creatorType%22%3A%22editor%22%2C%22firstName%22%3A%22Erich%22%2C%22lastName%22%3A%22Gamma%22%7D%5D%2C%22abstractNote%22%3A%22%22%2C%22date%22%3A%221995%22%2C%22language%22%3A%22%22%2C%22ISBN%22%3A%22978 – 0‑201 – 63361‑0%22%2C%22url%22%3A%22%22%2C%22collections%22%3A%5B%5D%2C%22dateModified%22%3A%222021 – 11-28T00%3A38%3A24Z%22%7D%7D%2C%7B%22key%22%3A%22TBT7B5D2%22%2C%22library%22%3A%7B%22id%22%3A5085975%7D%2C%22meta%22%3A%7B%22creatorSummary%22%3A%22Zelinski%22%2C%22parsedDate%22%3A%222020%22%2C%22numChildren%22%3A2%7D%2C%22bib%22%3A%22%3Cdiv%20class%3D%5C%22csl-bib-body%5C%22%20style%3D%5C%22line-height%3A%201.35%3B%20%5C%22%3E%5Cn%20%20%3Cdiv%20class%3D%5C%22csl-entry%5C%22%3EZelinski%2C%20J.%20%282020%29%20%26%23x2018%3BSynthesis%20of%20MOF%2C%20MDA%2C%20PIM%2C%20MVC%2C%20and%20BCE%20Notations%20and%20Patterns%26%23x2019%3B%2C%20in%20%3Ci%3EApplications%20and%20Approaches%20to%20Object-Oriented%20Software%20Design%3A%20Emerging%20Research%20and%20Opportunities%3C%5C%2Fi%3E.%20IGI%20Global%2C%20pp.%2078%26%23x2013%3B89.%20Available%20at%3A%20%3Ca%20href%3D%27https%3A%5C%2F%5C%2Fwww.igi-global.com%5C%2Fbook%5C%2Fapplications-approaches-object-oriented-software%5C%2F235699%27%3Ehttps%3A%5C%2F%5C%2Fwww.igi-global.com%5C%2Fbook%5C%2Fapplications-approaches-object-oriented-software%5C%2F235699%3C%5C%2Fa%3E%20%28Accessed%3A%2018%20December%202019%29.%3C%5C%2Fdiv%3E%5Cn%3C%5C%2Fdiv%3E%22%2C%22data%22%3A%7B%22itemType%22%3A%22bookSection%22%2C%22title%22%3A%22Synthesis%20of%20MOF%2C%20MDA%2C%20PIM%2C%20MVC%2C%20and%20BCE%20Notations%20and%20Patterns%22%2C%22creators%22%3A%5B%7B%22creatorType%22%3A%22author%22%2C%22firstName%22%3A%22Jaroslaw%22%2C%22lastName%22%3A%22Zelinski%22%7D%5D%2C%22abstractNote%22%3A%22Publications%2C%20including%20academic%20handbooks%2C%20contain%20numerous%20inconsistencies%20in%20the%20descriptions%20of%20applications%20of%20architectural%20methods%20and%20patterns%20hidden%20under%20the%20abbreviations%20such%20as%20MOF%2C%20MDA%2C%20PIM%2C%20MVC%2C%20BCE.%20An%20efficient%20analysis%20and%20the%20following%20software%20design%2C%20particularly%20when%20we%20are%20speaking%20of%20projects%20realized%20in%20large%20teams%2C%20requires%20standardization%20of%20the%20production%20process%20and%20the%20applied%20patterns%20and%20frameworks.%20This%20study%20attempted%20to%20sort%20out%20the%20system%20of%20notations%20describing%20this%20process%20and%20used%20to%20describe%20architectural%20patterns.%20Analysis%20of%20key%20notations%3A%20MOF%20and%20MDA%2C%20patterns%20MVC%20and%20BCE%2C%20was%20carried%20out%2C%20a%20consistent%20system%20combining%20them%20into%20a%20whole%20was%20created.%22%2C%22bookTitle%22%3A%22Applications%20and%20Approaches%20to%20Object-Oriented%20Software%20Design%3A%20Emerging%20Research%20and%20Opportunities%22%2C%22date%22%3A%222020%22%2C%22language%22%3A%22en%22%2C%22ISBN%22%3A%22978 – 1‑79982 – 142‑7%22%2C%22url%22%3A%22https%3A%5C%2F%5C%2Fwww.igi-global.com%5C%2Fbook%5C%2Fapplications-approaches-object-oriented-software%5C%2F235699%22%2C%22collections%22%3A%5B%5D%2C%22dateModified%22%3A%222021 – 09-27T13%3A42%3A10Z%22%7D%7D%2C%7B%22key%22%3A%22DQVI65GH%22%2C%22library%22%3A%7B%22id%22%3A5085975%7D%2C%22meta%22%3A%7B%22creatorSummary%22%3A%22Jenney%20et%20al.%22%2C%22parsedDate%22%3A%222010%22%2C%22numChildren%22%3A2%7D%2C%22bib%22%3A%22%3Cdiv%20class%3D%5C%22csl-bib-body%5C%22%20style%3D%5C%22line-height%3A%201.35%3B%20%5C%22%3E%5Cn%20%20%3Cdiv%20class%3D%5C%22csl-entry%5C%22%3EJenney%2C%20J.%20%3Ci%3Eet%20al.%3C%5C%2Fi%3E%20%282010%29%20%3Ci%3EModern%20methods%20of%20systems%20engineering%3A%20with%20an%20introduction%20to%20pattern%20and%20model%20based%20methods%3C%5C%2Fi%3E.%20Erscheinungsort%20nicht%20ermittelbar%3A%20Joe%20Jenney.%3C%5C%2Fdiv%3E%5Cn%3C%5C%2Fdiv%3E%22%2C%22data%22%3A%7B%22itemType%22%3A%22book%22%2C%22title%22%3A%22Modern%20methods%20of%20systems%20engineering%3A%20with%20an%20introduction%20to%20pattern%20and%20model%20based%20methods%22%2C%22creators%22%3A%5B%7B%22creatorType%22%3A%22author%22%2C%22firstName%22%3A%22Joe%22%2C%22lastName%22%3A%22Jenney%22%7D%2C%7B%22creatorType%22%3A%22author%22%2C%22firstName%22%3A%22Mike%22%2C%22lastName%22%3A%22Gangl%22%7D%2C%7B%22creatorType%22%3A%22author%22%2C%22firstName%22%3A%22Rick%22%2C%22lastName%22%3A%22Kwolek%22%7D%2C%7B%22creatorType%22%3A%22author%22%2C%22firstName%22%3A%22David%22%2C%22lastName%22%3A%22Melton%22%7D%2C%7B%22creatorType%22%3A%22author%22%2C%22firstName%22%3A%22Nancy%22%2C%22lastName%22%3A%22Ridenour%22%7D%2C%7B%22creatorType%22%3A%22author%22%2C%22firstName%22%3A%22Martin%22%2C%22lastName%22%3A%22Coe%22%7D%5D%2C%22abstractNote%22%3A%22%22%2C%22date%22%3A%222010%22%2C%22language%22%3A%22eng%22%2C%22ISBN%22%3A%22978 – 1‑4637 – 7735‑7%22%2C%22url%22%3A%22%22%2C%22collections%22%3A%5B%5D%2C%22dateModified%22%3A%222020 – 02-24T12%3A50%3A55Z%22%7D%7D%2C%7B%22key%22%3A%22NVN9AR49%22%2C%22library%22%3A%7B%22id%22%3A5085975%7D%2C%22meta%22%3A%7B%22creatorSummary%22%3A%22Fowler%22%2C%22parsedDate%22%3A%221997%22%2C%22numChildren%22%3A1%7D%2C%22bib%22%3A%22%3Cdiv%20class%3D%5C%22csl-bib-body%5C%22%20style%3D%5C%22line-height%3A%201.35%3B%20%5C%22%3E%5Cn%20%20%3Cdiv%20class%3D%5C%22csl-entry%5C%22%3EFowler%2C%20M.%20%281997%29%20%3Ci%3EAnalysis%20patterns%3A%20reusable%20object%20models%3C%5C%2Fi%3E.%20Menlo%20Park%2C%20Calif%3A%20Addison%20Wesley%20%28The%20Addison-Wesley%20series%20in%20object-oriented%20software%20engineering%29.%3C%5C%2Fdiv%3E%5Cn%3C%5C%2Fdiv%3E%22%2C%22data%22%3A%7B%22itemType%22%3A%22book%22%2C%22title%22%3A%22Analysis%20patterns%3A%20reusable%20object%20models%22%2C%22creators%22%3A%5B%7B%22creatorType%22%3A%22author%22%2C%22firstName%22%3A%22Martin%22%2C%22lastName%22%3A%22Fowler%22%7D%5D%2C%22abstractNote%22%3A%22%22%2C%22date%22%3A%221997%22%2C%22language%22%3A%22%22%2C%22ISBN%22%3A%22978 – 0‑201 – 89542‑1%22%2C%22url%22%3A%22%22%2C%22collections%22%3A%5B%5D%2C%22dateModified%22%3A%222020 – 02-15T11%3A53%3A23Z%22%7D%7D%5D%7D
Gamma, E. (ed.) (1995) Design patterns: elements of reusable object-oriented software. Reading, Mass: Addison-Wesley (Addison-Wesley professional computing series).
Zelinski, J. (2020)
‘Synthesis of MOF, MDA, PIM, MVC, and BCE Notations and Patterns’, in
Applications and Approaches to Object-Oriented Software Design: Emerging Research and Opportunities. IGI Global, pp. 78 – 89. Available at:
https://www.igi-global.com/book/applications-approaches-object-oriented-software/235699 (Accessed: 18 December 2019).
Jenney, J. et al. (2010) Modern methods of systems engineering: with an introduction to pattern and model based methods. Erscheinungsort nicht ermittelbar: Joe Jenney.
Fowler, M. (1997) Analysis patterns: reusable object models. Menlo Park, Calif: Addison Wesley (The Addison-Wesley series in object-oriented software engineering).