https://github.com/akaliutau/cs-problems-ood
These are examples of OOD for different use-cases.
https://github.com/akaliutau/cs-problems-ood
ood oops-in-java patterns
Last synced: about 2 months ago
JSON representation
These are examples of OOD for different use-cases.
- Host: GitHub
- URL: https://github.com/akaliutau/cs-problems-ood
- Owner: akaliutau
- Created: 2020-11-14T06:06:58.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-05-01T07:23:09.000Z (about 5 years ago)
- Last Synced: 2025-01-11T00:13:32.822Z (over 1 year ago)
- Topics: ood, oops-in-java, patterns
- Language: Java
- Homepage:
- Size: 41 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
About
======
I created this repository with aim to demonstrate the best practices in low-level OOD. In OOD these are 24 canonical patterns initially proposed by gang of four, plus various secondary, less-known patterns which are popular in designing complex systems. For example, search functionality in JPA is implemented using Specification pattern.
There are many opinions regarding usefulness of these patterns in solving real problems. Sometimes (not always, but sometimes) there makes sense to add extra complexity into system, bearing in mind all future improvements, additions and complexities - it is not easy to make changes, and better of all anticipate and include them into Grand Design from the day zero.
Sometimes following these patterns is not the best that you could do. In fact, to invent a new approach to solve specific use-case is often much better than to try adopting a standard one. This is all about trade-offs. If design patterns lead to more complex architecture, follow your own way.
The best approach in this situation could be as said by one old man long time ago:
Everything should be made as simple as possible, but no simpler. (c) Einstein
Structure
==========
Package com.design.usecases includes the examples of OOD for different use-cases.
Package com.design.patterns contains implementation of different popular design patterns (total 29):
abstractfactory
adapter
bridge
builder
command
composite
converter
decorator
facade
factory
flyweight
interpreter
iterator
mediator
memento
nullobject
objectpool
observer
pipeline
property
prototype
proxy
chain of responsibilities
singleton
specification
state
strategy
template
visitor
This repository does not include architectural patterns and programming idioms.