A design-pattern-driven contact management system ensuring data integrity and decoupled persistence through advanced software architecture.
The system is built with a focus on architectural cleanliness and scalability. By utilizing a State Machine to manage navigation context and the Command Pattern to encapsulate logic, the application remains modular and easily extensible.
A core architectural choice is the implementation of the Serialization Proxy Pattern. This mechanism decouples domain-specific behavior (logic in Person or Organization classes) from the underlying storage format on disk. This ensures the database remains stable and version-resistant even as the domain objects evolve.
Command Pattern & State Machine [Logic]
The application navigation is managed by a context-aware state machine. Each user action - be it adding, searching, or listing - is encapsulated within a separate command object.
- ADD: Dynamic contact creation (
PersonorOrganization) with field-level validation. - LIST: Full database traversal with interactive record selection.
- SEARCH: High-speed regex-based searching across all contact fields.
- COUNT: Real-time record statistics.
.\mvnw.cmd clean package./mvnw clean packageThe system accepts an optional parameter for the database file path.
java -jar target/rcaban_contacts-1.0-SNAPSHOT.jar contacts.dbThe project is 100% compliant with Google's coding standards. Every class and method is fully documented using Javadoc.
Unit tests verify almost every branch of the logic, ensuring stability during refactoring.
The code has been checked for logical errors and redundancies.
Bytecode analysis confirms the absence of hidden bugs and security vulnerabilities.




