Software Engineering Asked by user agent on December 3, 2020
I already know of various software design patterns, and I am familiar with MVC.
However, now that I am learning about other patterns (repository, client-server, pipe, and layered), I got a bit confused about the implementation of these patterns.
Can there be a combination of patterns in a single software system? If so, how would this work?
Let's focus on the architectural patterns you mentioned (repository, client-server, pipe, layered).
A client-server system consists of programs or components which run on the client, and others which run on the server. Each of these components can have a layer structure internally. One of these layer may be a repository layer (for example, for decoupling other parts of the program from the database access code).
Both the client components as well as the server components may contain a "business logic layer". And for certain kinds of business logic, it makes sense for this layer to be structured internally by pipes and filters. For example, a 3D rendering engine on the client side can be structured by using a rendering pipeline. A system which does heavily asynchronous batch processing on the server side (for example, for filling / updating a data ware house every night) can have a batch processing pipeline.
So in short, different architectural patterns appear at different levels of abstraction. And in any larger real-world system one will usually find several of those patterns.
Correct answer by Doc Brown on December 3, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP