设计模式之使用Enum来实现strategy(策略模式系列2)

简介:

使用Enum实现枚举代码更为清晰和简单,适合于处理一些比较简单的业务流程。如果算法或者业务流程比较复杂,还是使用以前的吧。直接贴代码吧,同样是上篇文章中的例子。

 
 
  1.  public  enum TestStrategy {  
  2.    
  3.     RepTempRuleOne{  
  4.         @Override  
  5.         public String replace(String oldString) {  
  6.             // TODO Auto-generated method stub  
  7.    
  8.             String newString=oldString.replaceFirst("a", "XXX");  
  9.             return newString  ;  
  10.    
  11.         }  
  12.     },  
  13.     RepTempRuleTwo{  
  14.    
  15.         @Override  
  16.         public String replace(String oldString) {  
  17.             // TODO Auto-generated method stub  
  18.             String newString=oldString.replaceFirst("n", "***");  
  19.             return newString  ;  
  20.         }  
  21.    
  22.     };  
  23.    
  24.     abstract String replace(String oldString);  
  25.    
  26.     public static void main(String... args){  
  27.         String oldString"www.zuiniuwang.com";  
  28.         RepTempRuleSolveEnum repTempRuleSolve=new RepTempRuleSolveEnum(TestStrategy.RepTempRuleOne);  
  29.         String  myNewString = repTempRuleSolve.getNewContext(oldString);  
  30.         System.out.println("newString  is "+myNewString);  
  31.         repTempRuleSolve.changeAlgorithm(TestStrategy.RepTempRuleTwo);  
  32.         myNewString = repTempRuleSolve.getNewContext(oldString);  
  33.         System.out.println("Second  New String   is "+myNewString);  
  34.    
  35.     }  
  36.    
  37. }  
  38.    
  39. class RepTempRuleSolveEnum {  
  40.     private TestStrategy strategy;  
  41.    
  42.     public RepTempRuleSolveEnum(TestStrategy rule){  
  43.           this.strategy=rule ;  
  44.     }  
  45.    
  46.     public String getNewContext(String oldString) {  
  47.         try {  
  48.             return strategy.replace(oldString);  
  49.         } catch (Exception e) {  
  50.             // TODO Auto-generated catch block  
  51.             e.printStackTrace();  
  52.         }  
  53.         return null ;  
  54.     }  
  55.    
  56.     public void changeAlgorithm(TestStrategy newAlgorithm) {  
  57.         strategy = newAlgorithm;  
  58.     }  

 


本文转自 最牛傻蛋 51CTO博客,原文链接:http://blog.51cto.com/zuiniuwang/718357,如需转载请自行联系原作者

相关文章
|
1月前
|
设计模式 算法 Kotlin
Kotlin - 改良设计模式 - 策略模式
Kotlin - 改良设计模式 - 策略模式
48 4
|
28天前
|
设计模式 算法 Kotlin
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
43 1
|
1月前
|
设计模式 前端开发 JavaScript
JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式
本文深入探讨了JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式,结合电商网站案例,展示了设计模式如何提升代码的可维护性、扩展性和可读性,强调了其在前端开发中的重要性。
29 2
|
1月前
|
设计模式 算法 Kotlin
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
47 2
|
2月前
|
设计模式 算法 Kotlin
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
本教程详细讲解Kotlin语法,适合深入学习。快速入门可参考“简洁”系列教程。本文通过游泳运动员的案例,介绍策略模式及其在Kotlin中的改良应用,利用高阶函数简化代码结构,提高灵活性。
39 3
|
2月前
|
设计模式 算法 Kotlin
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
本教程详细讲解Kotlin语法,适合深入学习。快速入门可参考“简洁”系列教程。本文介绍策略模式在Kotlin中的应用,通过游泳运动员的例子,展示如何使用接口和高阶函数实现策略模式,使代码更简洁、灵活。
34 2
|
2月前
|
设计模式 算法 Kotlin
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
67 3
|
2月前
|
设计模式 算法 Kotlin
Kotlin - 改良设计模式 - 策略模式
Kotlin - 改良设计模式 - 策略模式
|
2月前
|
设计模式 算法 PHP
PHP中的设计模式:策略模式的深入解析与实践
【10月更文挑战第12天】 在软件开发的世界中,设计模式是解决常见问题的最佳实践。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理运用设计模式可以极大地提高代码的可维护性、扩展性和复用性。本文将深入探讨策略模式(Strategy Pattern)的原理、实现方式及其在PHP中的应用。通过具体示例,我们将展示如何利用策略模式来解耦算法与对象,从而让代码更加灵活和易于管理。
24 0
|
2月前
|
设计模式 存储 算法
PHP中的设计模式:策略模式的深入解析与实践
【10月更文挑战第9天】 在PHP开发领域,设计模式是提升代码可维护性、扩展性和重用性的关键技术之一。本文聚焦于策略模式这一行为型设计模式,通过理论阐述与实例分析,揭示其在PHP应用程序中优化算法切换和业务逻辑解耦方面的强大效用。不同于常规摘要,本文不直接概述研究方法或结果,而是基于实际开发场景,探讨策略模式的应用价值和实现方式,旨在为PHP开发者提供一种高效应对复杂业务需求变化和技术债务累积问题的策略思维。

热门文章

最新文章