An open API service indexing awesome lists of open source software.

https://github.com/plopezgit/sprint3_t1_patterns_part_1

Design pattern study
https://github.com/plopezgit/sprint3_t1_patterns_part_1

pattern-recognition patterns singleton-pattern software-design

Last synced: 4 months ago
JSON representation

Design pattern study

Awesome Lists containing this project

README

          

# Sprint3_T1_Patterns_Part_1

_Description:_

In this practice we will learn to identify and build programs using design patterns. The use of patterns is fundamental in the construction of extensible and reusable software. The Java language, as well as all software frameworks, are made according to the most important software patterns.

_Targets:_

Learn to identify and handle software construction patterns.

- Level 1

In all exercises, create a project with a Main class that demonstrates the use of the pattern (with the necessary invocations).

**Singleton**

Create a class that replicates the operation of the 'Undo' command. This class will be used by the Main class, which will allow entering options by console.

The 'Undo' class must save the last commands entered. It should allow adding or removing commands, as well as listing the last commands entered (similar to the 'history' command in Linux).

The 'Undo' class must implement a Singleton pattern.

- Level 2

**Abstract Factory**

Create a small manager of international phone numbers and addresses.

The application must allow international addresses and phone numbers to be added to the address book. Considering the different formats of different countries, it builds the phone book, addresses and phones by implementing an Abstract Factory pattern.

- Level 3

**Command**

Design a parking lot of 4 vehicles: a car, a bicycle, a plane and a boat.
It shows how the Command pattern works that implements the start, accelerate, and brake methods for each vehicle type.

Util ref:

>https://scientificprogrammer.net/2020/01/30/an-easy-way-to-learn-design-patterns-in-software-development/