Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/benami171/oop_final_project
OOP course final project.
https://github.com/benami171/oop_final_project
java oop
Last synced: about 2 months ago
JSON representation
OOP course final project.
- Host: GitHub
- URL: https://github.com/benami171/oop_final_project
- Owner: benami171
- Created: 2024-05-02T10:41:42.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2024-07-12T12:43:45.000Z (7 months ago)
- Last Synced: 2024-07-12T14:37:22.642Z (7 months ago)
- Topics: java, oop
- Language: Java
- Homepage:
- Size: 42 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# OOP COURSE - FINAL PROJECT
## Introduction
This project is seperated to 2 parts:
1. **Part 1** - Implementing a Flight management system.
2. **Part 2** - Implementing a Course Registration system.## Part 1 - Flight management system
### Classes
1. **Flight** - Represents a flight.
2. **Company** - Represents a company that operates flights.
3. **Airport** - Represents an airport that will manage all the flights and airlines that operate in it.
4. **Customer** - Represents a customer that can book a flight.
5. **Worker** - Represents a crew member that can work on a flight. each worker has a job title. (e.g. pilot, ground crew, etc.)
6. **FlightManager** - Represents a manager that can manage the flights and workers.
7. **NotificationManager** - Represents a manager that can send notifications to customers and workers.
8. **SearchManager** - Represents a manager that handle the search of flights for the company.
9. **SubCompanyManager** - Represents a manager that can manage the sub-companies of the Company.### Design Patterns
1. **Singleton** - Used in the Airport class, as we want to have only one instance of the airport to work with.
2. **Observer** - Used in the NotificationManager class as the Notification manager implements Subject interface and the Customer and Worker classes implement the Observer interface.
3. **Strategy** - Used in the SearchManager class, based on the preferences of the user, the SearchManager will use the appropriate search strategy.
4. **Composite** - Used in the Company class, as the company can have sub-companies and we want to treat the sub-companies and the company as the same.