#Lớp thứ 5
##Thành viên trong nhóm:
##Báo cáo về Design Pattern
###1. Abstract Factory
- AbstractFactory được khai báo theo cấu trúc chuẩn
- ConcreteFactory được xây dựng không theo cấu trúc chuẩn
- AbstractProduct được khai báo theo cấu trúc chuẩn
- Product đã được cài đặt theo cấu trúc chuẩn
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/abstract-factory (Link repo)
- https://gpcoder.com/4365-huong-dan-java-design-pattern-abstract-factory/ (Link tham khảo của gpcoder)
###2. Adapter
- Adaptee đã được khai báo theo cấu trúc chuẩn
- Adapter được khai báo theo cấu trúc chuẩn
- Target được khai báo theo cấu trúc chuẩn
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/adapter (Link repo)
- https://gpcoder.com/4483-huong-dan-java-design-pattern-adapter/ (Link tham khảo của gpcoder)
###3. Bridge
- Abstraction có một vài phần không theo cấu trúc chuẩn
- Refined Abstraction được cài đặt theo cấu trúc chuẩn
- Implementor được khai báo theo cấu trúc chuẩn
- ConcreteImplementor được khai báo theo cấu trúc chuẩn
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/bridge (Link repo)
- https://gpcoder.com/4520-huong-dan-java-design-pattern-bridge/ (Link tham khảo của gpcoder)
###4. Builder
- ConcreteBuilder chưa kế thừa Builder
- Director đã được cài đặt theo cấu trúc chuẩn
- Product đã được cài đặt theo cấu trúc chuẩn
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/builder (Link repo)
- https://gpcoder.com/4434-huong-dan-java-design-pattern-builder/ (Link tham khảo của gpcoder)
###5. Composite
- Base Component đã được khai báo theo cấu trúc chuẩn
- Leaf đã được cài đặt nhưng chưa implement các phương thức của Component
- Composite đã được cài đặt theo cấu trúc chuẩn
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/composite (Link repo)
- https://gpcoder.com/4554-huong-dan-java-design-pattern-composite/ (Link tham khảo của gpcoder)
###6. Factory Method
- Super Class đã được cài đặt theo cấu trúc chuẩn
- Sub Class đã được cài đặt theo cấu trúc chuẩn
- Factory Class đã được cài đặt theo cấu trúc chuẩn
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/factory-method (Link repo)
- https://gpcoder.com/4352-huong-dan-java-design-pattern-factory-method/ (Link tham khảo của gpcoder)
###7. Decorator
- Component đã được cài đặt đúng
- ConcreteComponent đã được cài đặt theo cấu trúc chuẩn
- Decorator đã được cài đặt theo cấu trúc chuẩn
- ConcreteDecorator đã được cài đặt theo cấu trúc chuẩn
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/decorator (Link repo)
- https://gpcoder.com/4574-huong-dan-java-design-pattern-decorator/ (Link tham khảo của gpcoder)
###8. Flyweight
- Flyweight đã được cài đặt theo cấu trúc chuẩn
- ConcreteFlyweight đã được cài đặt theo cấu trúc chuẩn
- UnsharedFlyweight đã được cài đặt theo cấu trúc chuẩn
- FlyweightFactory đã được cài đặt theo cấu trúc chuẩn
- Client đã được cài đặt
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/flyweight (Link repo)
- https://gpcoder.com/4626-huong-dan-java-design-pattern-flyweight/ (Link tham khảo của gpcoder)
###9. Prototype
- Prototype đã được cài đặt theo cấu trúc chuẩn
- ConcretePrototype đã dược cài đặt theo cấu trúc chuẩn
- Client đã được cài đặt
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/prototype (Link repo)
- https://gpcoder.com/4413-huong-dan-java-design-pattern-prototype/ (Link tham khảo của gpcoder)
###10. Singleton
- Private Contructor đã được cài đặt
- Đã có một method public static được cài đặt
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/singleton (Link repo)
- https://gpcoder.com/4190-huong-dan-java-design-pattern-singleton/ (Link tham khảo của gpcoder)
###11. Chain of Responsibility:
- Mẫu thiết kế theo repo có thêm 2 lớp để khai báo so với cấu trúc chuẩn
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/chain (Link repo)
- https://gpcoder.com/4665-huong-dan-java-design-pattern-chain-of-responsibility/ (Link tham khảo của gpcoder)
###12. Command:
- Mẫu thiết kế theo repo có đủ cấu trúc, đó là interface or abstract class, có implemention, có tiếp nhận request.
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/command (Link repo)
- https://gpcoder.com/4686-huong-dan-java-design-pattern-command/ (Link tham khảo của gpcoder)
###13. Facade:
- Có đầy đủ các cấu trúc giống như định dạng chuẩn.
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/facade (Link repo)
- https://gpcoder.com/4604-huong-dan-java-design-pattern-facade/ (Link tham khảo của gpcoder)
###14. Interpreter:
- Mẫu thiết kế thiếu mất cấu trúc context.
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/interpreter (Link repo)
- https://gpcoder.com/4702-huong-dan-java-design-pattern-interpreter/ (Link tham khảo của gpcoder)
###15. Iterator:
- Mẫu thiết kế giống với mẫu chuẩn
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/iterator (Link repo)
- https://gpcoder.com/4724-huong-dan-java-design-pattern-iterator/ (Link tham khảo của gpcoder)
###16. Mediator:
- Có đầy đủ cấu trúc giống mẫu chuẩn.
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/mediator (Link repo)
- https://gpcoder.com/4740-huong-dan-java-design-pattern-mediator/ (Link tham khảo của gpcoder)
###17. Memento
- Mẫu thiết kế đầy đủ cấu trúc originator, caretaker và memento .
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/memento (Link repo)
- https://gpcoder.com/4763-huong-dan-java-design-pattern-memento/ (Link tham khảo của gpcoder)
###18. Observer
- Có đầy đủ các trúc như subject, observer, concreteSubject và concreteObserver, và nhiều hơn 1 biến enum.
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/observer (Link repo)
- https://gpcoder.com/4747-huong-dan-java-design-pattern-observer/ (Link tham khảo của gpcoder)
###19. Proxy
- Giống cấu trúc gốc.
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/proxy (Link repo)
- https://gpcoder.com/4644-huong-dan-java-design-pattern-proxy/ (Link tham khảo của gpcoder)
###20. Template method
- Có đầy đủ cấu trúc Abstract Class và 1 concrete Class ngoài ra thêm 1 phương thức của Abstract class và 1 hàm nữa.
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/template-method (Link repo)
- https://gpcoder.com/4810-huong-dan-java-design-pattern-template-method/ (Link tham khảo của gpcoder)
###21. Visitor
- Có đầy đủ các file trong cấu trúc như visitor, concreteVisitor, element và phương thức của elements, objectStructure.
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/visitor (Link repo)
- https://gpcoder.com/4813-huong-dan-java-design-pattern-visitor/ (Link tham khảo của gpcoder)
###22. State
- Có đầy đủ các cấu trúc context, state và concreteState và có thêm hàm main
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/state (Link repo)
- https://gpcoder.com/4785-huong-dan-java-design-pattern-state/ (Link tham khảo của gpcoder)
###23. Strategy
- Có đầy đủ các cấu trúc như strategy, 2 concreteStrategy, context
- https://github.com/JamesZBL/java\_design\_patterns/tree/master/strategy (Link repo)
- https://gpcoder.com/4796-huong-dan-java-design-pattern-strategy/ (Link tham khảo của gpcoder)