Java责任链设计模式-Lambda表达式
2017-10-12 09:09
411 查看
责任链模式是创建处理对象链 (如操作链) 的常见解决方案。一个处理对象可以做一些工作并将结果传递给另一个对象, 然后它也会执行一些工作并将其传递给另一个处理对象, 等等。
通常, 通过定义一个表示处理对象的抽象类来实现这个模式, 定义一个字段来跟踪后继者。一旦它完成了它的工作, 处理对象移交它的工作对它的后继者。
示例代码:
ChainOfResponsibilityMain.java
通常, 通过定义一个表示处理对象的抽象类来实现这个模式, 定义一个字段来跟踪后继者。一旦它完成了它的工作, 处理对象移交它的工作对它的后继者。
示例代码:
ChainOfResponsibilityMain.java
import java.util.function.Function; import java.util.function.UnaryOperator; public class ChainOfResponsibilityMain { public static void main(String[] args) { ProcessingObject<String> p1 = new HeaderTextProcessing(); ProcessingObject<String> p2 = new SpellCheckerProcessing(); p1.setSuccessor(p2); String result1 = p1.handle("Aren't labdas really sexy?!!"); System.out.println(result1); UnaryOperator<String> headerProcessing = (String text) -> "From Raoul, Mario and Alan: " + text; UnaryOperator<String> spellCheckerProcessing = (String text) -> text.replaceAll("labda", "lambda"); Function<String, String> pipeline = headerProcessing.andThen(spellCheckerProcessing); String result2 = pipeline.apply("Aren't labdas really sexy?!!"); System.out.println(result2); } static private abstract class ProcessingObject<T> { protected ProcessingObject<T> successor; public void setSuccessor(ProcessingObject<T> successor) { this.successor = successor; } public T handle(T input) { T r = handleWork(input); if (successor != null) { return successor.handle(r); } return r; } abstract protected T handleWork(T input); } static private class HeaderTextProcessing extends ProcessingObject<String> { public String handleWork(String text) { return "From Raoul, Mario and Alan: " + text; } } static private class SpellCheckerProcessing extends ProcessingObject<String> { public String handleWork(String text) { return text.replaceAll("labda", "lambda"); } } }
相关文章推荐
- 23种设计模式(19)java责任链模式
- Java设计模式之责任链模式
- java设计模式——责任链
- Java设计模式之责任链模式
- Java设计模式——Chain of Responsibility(责任链)模式
- java设计模式(二):2.1责任链(简单一条链)
- Java设计模式《二十》责任链模式
- JAVA设计模式之责任链模式
- java设计模式之责任链模式
- java设计模式之责任链模式
- JAVA设计模式之责任链模式
- java-设计模式-责任链
- java设计模式之责任链模式
- Java工厂设计模式-lambda表达式简单实例
- Java责任链设计模式
- java责任链设计模式及在tomca容器中的应用,第一部分
- (十九)Java设计模式之责任链模式
- java设计模式之责任链模式
- java责任链设计模式及在tomca容器中的应用,第二部分