As part of this assignment, students are requested to use at least one design pattern from each section learnt from this course.
https://www.packtpub.com/application-development/learn-design-patterns-java-9-video
Library Management Software is "Menu driver" program which can use standard input and output (terminal) to operate.
- Inventory management of books. ( listing / add / remove books in library )
- Crud operation for members of library. (add/remove/edit members)
- Assign books to library member.
- Validation - Do not allow duplicate assignment.
- Fine calculator for late submissions of books.
- Wish list of books for a member.
Design classes and objects keeping different design patterns in mind:
- Creational design pattern to create and add objects (books/members) in system.
- Structural design pattern to establish relationship between objects and classes Eg. Proxy books to save loading time
- Behavioral while establishing communication between components Eg. Observer for wish list component.
- Write Dry code ( Do not repeat yourself - have reusable components)
- Write Loosely coupled and cohesive classes
- Please Program against interface.
Use database of your choice but try to avoid DB dependency and use Java collections with some seed data (call in init block).
https://premaseem.wordpress.com/category/computers/design-patterns/
- Please raise the pull request in https://github.com/premaseem/DesignPatternsJava9 as a separate branch from your fork.
- Feel free to discuss your idea in Software Design pattern community page https://www.facebook.com/DesignPatternGuru