Skip to content

ThanhPhiNgo/design-pattern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 

Repository files navigation

design-pattern

Creational

Singleton

Reference:

  1. https://gpcoder.com/4190-huong-dan-java-design-pattern-singleton/
  2. https://ngockhuong.com/java/java-design-pattern/vai-phut-hieu-ve-java-singleton-pattern.html

Should:

  1. Bill Pugh Singleton for performance
  2. Lazy Singleton for single thread
  3. Thread safe Singleton for multi thread

Factory method

Reference: https://gpcoder.com/4352-huong-dan-java-design-pattern-factory-method/

Abstract factory

Reference: https://gpcoder.com/4365-huong-dan-java-design-pattern-abstract-factory/

Prototype

Reference: https://gpcoder.com/4413-huong-dan-java-design-pattern-prototype/

Builder

Reference: https://gpcoder.com/4434-huong-dan-java-design-pattern-builder/

Object pool

Reference: https://gpcoder.com/4456-huong-dan-java-design-pattern-object-pool/


Structural

Adapter

Reference: https://gpcoder.com/4483-huong-dan-java-design-pattern-adapter/

Bridge

Reference: https://gpcoder.com/4520-huong-dan-java-design-pattern-bridge/

Composite

Reference: https://gpcoder.com/4554-huong-dan-java-design-pattern-composite/

Decorator

Reference: https://gpcoder.com/4574-huong-dan-java-design-pattern-decorator/

⚠️ Note:
In this code, we can only add new features to the object. We cannot remove the previous features of this object.
> Example: Manager becomes TeamLeader, TeamLeader still doTask of Manager. This is Problem

Facade

Reference: https://gpcoder.com/4604-huong-dan-java-design-pattern-facade/

Flyweight

Reference: https://gpcoder.com/4626-huong-dan-java-design-pattern-flyweight/

Review: Good for create character in game

Proxy

Reference: https://gpcoder.com/4644-huong-dan-java-design-pattern-proxy/

Review: Useful for lazy loading


Behavior

Chain of Responsibility

Reference: https://gpcoder.com/4665-huong-dan-java-design-pattern-chain-of-responsibility/

Review:

  • Suitable for create and push Alert through applications (tools) by level
  • Summary: Execute an action by level chain, which has corresponding condition for each level