Groovy 设计模式 -- 责任链模式
2018-04-05 21:18
197 查看
Chain of Responsibility Pattern
http://groovy-lang.org/design-patterns.html#_chain_of_responsibility_pattern
责任链模式, 将一类实现相同接口的对象,组织到一个列表中,
列表的执行中第一个对象开始, 并依此往后传递,直到某一个对象说我来对此次执行负责, 并终止链条的后续对象执行。
In the Chain of Responsibility Pattern, objects using and implementing an interface (one or more methods) are intentionally loosely coupled. A set of objects that implement the interface are organised in a list (or in rare cases a tree). Objects using the interface make requests from the first implementor object. It will decide whether to perform any action itself and whether to pass the request further down the line in the list (or tree). Sometimes a default implementation for some request is also coded into the pattern if none of the implementors respond to the request.
例子
class UnixLister { private nextInLine UnixLister(next) { nextInLine = next } def listFiles(dir) { if (System.getProperty('os.name') == 'Linux') { println "ls $dir".execute().text } else { nextInLine.listFiles(dir) } } } class WindowsLister { private nextInLine WindowsLister(next) { nextInLine = next } def listFiles(dir) { if (System.getProperty('os.name') == 'Windows XP') { println "cmd.exe /c dir $dir".execute().text } else { nextInLine.listFiles(dir) } } } class DefaultLister { def listFiles(dir) { new File(dir).eachFile { f -> println f } } } def lister = new UnixLister(new WindowsLister(new DefaultLister())) lister.listFiles('Downloads')
相关文章推荐
- Java设计模式之责任链模式、职责链模式
- 19.C语言和设计模式(责任链模式)
- 架构设计五之建造者模式和责任链模式
- 实例讲解Java的设计模式编程中责任链模式的运用
- 六种常用的设计模式java实现(三)责任链模式
- Groovy 设计模式 -- 迭代器模式
- 设计模式学习总结-责任链模式(Chain of Responsibility Method)
- 设计模式(10):责任链模式
- 十六.行为型设计模式——Chain of Responsibility(责任链模式)
- 《您的设计模式》(CBF4LIFE)之“责任链模式”【整理】
- 设计模式—责任链模式
- 【设计模式 - 13】之责任链模式(Chain Of Responsibility)
- JAVA啊设计模式之责任链模式
- 设计模式利剑10-责任链模式
- 设计模式之二十:责任链模式(Chain of Responsibility)
- Java-马士兵设计模式学习笔记-责任链模式-FilterChain功能
- 设计模式-责任链模式
- 设计模式之责任链模式
- Java设计模式之责任链模式、职责链模式
- Java设计模式系列之责任链模式