Is it possible to use more than one software architecture pattern in a single software? If so, how would this work?

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?

One Answer

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

Add your own answers!

Ask a Question

Get help from others!

© 2024 All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP