This project showcases Object-Oriented Design (OOD) principles through practical Java implementations. It is structured into multiple problems, each modeling real-world entities using encapsulation, inheritance, polymorphism, and design patterns.
- Modular Codebase: Divided into distinct packages (
problem1,problem2,problem3), each tackling a unique OOD challenge. - Encapsulation & Abstraction: Secure handling of user credentials and financial data.
- Separation of Concerns: Each entity has a clear, single responsibility.
- Test-Driven Development (TDD): Includes JUnit test cases for validation.
Assignment1/src/main/java/
│── problem1/
│ ├── Credentials.java
│ ├── User.java
│── problem2/
│ ├── Delivery.java
│ ├── Time.java
│── problem3/
│ ├── Account.java
│ ├── Amount.java
│ ├── Identifier.java
│── test/
├── problem1/CredentialsTest.java
├── problem2/DeliveryTest.java
- Java 17+
- Gradle for build automation
- JUnit for unit testing
-
Clone the repository:
git clone https://github.com/Vincamine/OOD-Blueprints-Practical-Object-Oriented-Design.git cd OOD-Blueprints-Practical-Object-Oriented-Design -
Build the project:
./gradlew build
-
Run tests:
./gradlew test
This repository demonstrates strong OOD principles, making it an excellent showcase for software design skills. It highlights:
- Data modeling with well-defined classes
- Separation of concerns using different packages
- Robust testing for maintainability
Wenxue(Wyllie) Fang