Chào các em, chủ đề hôm nay của anh sẽ bàn về Design PatternMethod Factory ? Khi nào chúng ta sẽ dùng nó trong lập trình.
1- Strategy Pattern là gì ?
Chúng ta dùng Strategy Pattern để quản lý thuật toán , các mối quan hệ giữa các object trong ứng dụng
2- Khi nào nên dùng Abstract Factory
Chúng ta sử dụng Strategy khi chúng ta muốn chọn một thuật toán cho một đối tượng cụ thể lúc runtime (chương trình đang chạy). Ví dụ như thuật toán thanh toán cho khi mua hàng online trên mạng. Chúng ta có thể thanh toán bằng thẻ visa hay master. Thì khi chương trình mình dang chạy nếu người dùng chọn visa thì mình sẽ dùng thuật toán tính tiền của visa để thanh toán. Như vậy ta wrap các thuật toán , các business thành một đối tượng và sử dụng nó
3- Strategy UML
Ví dụ sau dây ta làm cho thuật toán nén file. Người dùng có thể nén bằng zip hoặc bằng rar
publicclassCompressionContext{privateCompressionStrategystrategy;//this can be set at runtime by the application preferencespublicvoidsetCompressionStrategy(CompressionStrategystrategy){this.strategy=strategy;}//use the strategypublicvoidcreateArchive(ArrayList<File>files){strategy.compressFiles(files);}}
1
2
3
4
5
6
7
8
9
publicclassClient{publicstaticvoidmain(String[]args){CompressionContextctx=newCompressionContext();//we could assume context is already set by preferencesctx.setCompressionStrategy(newZipCompressionStrategy());//get a list of files...ctx.createArchive(fileList);}}
Mọi người hãy Subscribe kênh youtube dưới đây nhé để cập nhật các video mới nhất về kỹ thuật và kỹ năng mềm