`
hiqrf
  • 浏览: 19029 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

初涉设计模式--策略模式

    博客分类:
  • JAVA
阅读更多

策略模式属于行为模式,其意图是定义一系列算法,把他们一个个封装起来,并且使他们可以互相替换。
优点:
1.提供了管理相关的算法族的办法。
2.提供了可以替换继承关系的办法。
3.避免使用多重条件转移语句。
缺点:
1.客户端必须知道所有的策略类,并自行决定使用哪一个策略类。
2.造成很多的策略类。

下面是一个示意的代码:
我们想输入一个数组,输出一下表格,用户可以有如下要求:
输出为:<table><tr><td>111<td/></tr><tr><td>222</td></tr></table>
输出也可能为:|111|222|333|

//TableExporter .java
public interface TableExporter {
public String getExported(String[] data);
}

//HTMLExporter
public class HTMLExporter implements TableExporter {

public String getExported(String[] data) {
if (data == null) {
return "";
}
StringBuilder sb = new StringBuilder();
sb.append("<table>");
for (int i = 0; i < data.length; i++) {
sb.append("<tr><td>").append(data[i]).append("</td></tr");
}
sb.append("</table>");
return sb.toString();
}
}


//Test.java


public class Test {

public static void main(String[] args) {
String[] data = {"111","222","333"};
           TableExporter tb;
          // tb = new HTMLExporter();
           tb = new LineExporter();
          System.out.println(tb.getExported(data));
}
}

1
0
分享到:
评论

相关推荐

    java初涉设计模式

    ### Java初涉设计模式 #### 重要概念与背景 在软件工程领域,设计模式是一种用于解决常见问题的模板,能够帮助开发人员构建可维护、可扩展且高效的系统。本篇文章探讨的是面向对象编程语言Java中关于模拟鸭子游戏...

    《漫谈设计模式》—Java设计模式的好帮手

    《漫谈设计模式》是一本专为Java开发者深入理解设计模式而编写的书籍。设计模式是软件工程中的...无论你是初涉设计模式的新手,还是已经有一定经验的老手,这本书都值得一读,它将成为你在Java设计模式领域的得力助手。

    Android源码设计模式解析与实战 pdf高清版

    《Android源码设计模式解析与实战》是一本深入探讨Android系统源码中设计模式应用的专业书籍,适合希望提升技术能力、研究源码或学习设计模式的开发者。这本书以清晰的结构和实例,揭示了Android系统背后的软件工程...

    Head.First设计模式_PDF

    《Head First设计模式》是一本深受开发者喜爱的设计模式学习书籍,它以独特的视觉化和易于理解的方式介绍了23种经典的设计模式。...无论你是初涉设计模式的新手,还是寻求提升的老兵,这本书都能为你提供宝贵的指导。

    设计模式 打包

    总的来说,这个压缩文件提供了一个全面的学习设计模式的资源库,无论你是初涉设计模式的新手还是寻求进一步提升的专家,都能从中受益。理解并应用设计模式将提升你的编程技巧,使你能够更好地应对复杂系统的设计挑战...

    设计者模式之禅第二版

    总之,《设计模式之禅(第2版)》是一本值得深入研读的书籍,无论你是初涉软件设计的新手,还是经验丰富的开发者,都能从中获益匪浅。通过学习本书,你将能更好地理解和运用设计模式,提升自己的编程技能,为软件...

    ARM学习资料--适合初涉领域

    在"ARM学习资料--适合初涉领域"这个资源中,你将能够了解到关于ARM处理器的基础知识,包括其架构原理、指令集、开发环境以及应用实例等。以下是一些可能涵盖的重要知识点: 1. **ARM架构概述**:ARM架构的核心特点...

    Wiley---EJB-design-patterns.zip_design patterns

    书中详细阐述了如何利用设计模式优化会话bean,包括单例模式、工厂模式以及策略模式,以实现更好的状态管理和并发控制。 2. **实体bean模式**:实体bean用于持久化数据,与数据库交互。书中讨论了事务策略、激活和...

    初涉StrutsMenu

    10. **最佳实践**:在使用StrutsMenu时,开发者应遵循最佳实践,如合理规划菜单层次,避免过于复杂的菜单结构,以及正确处理菜单的异步加载和缓存策略等。 通过理解以上知识点,开发者能够更好地掌握和运用Struts...

    Head First Design Patterns(英文版)

    本书非常适合那些初涉设计模式或者希望深入理解设计模式的读者。它以一种非传统的学习方式呈现内容,结合了丰富的图表、幽默的对话和实际案例,使得学习过程不仅充满乐趣,而且容易理解。书中的例子和练习都以Java...

    乐队管理系统--Ues.zip

    总的来说,【乐队管理系统--Ues.zip】是一个全面的Java开发项目实例,涵盖了数据库操作、MVC设计模式、Spring框架应用、测试策略以及部署配置等多个方面,对初级Java开发者来说是一个宝贵的实践和学习素材。...

    Laravel开发-php-rest-models

    在本文中,我们将深入探讨“Laravel开发-php-rest-models”这一主题,这是一个独立于框架的PHP REST模型,它提供了模式验证...无论你是初涉RESTful API,还是已经是一位经验丰富的开发者,这个库都值得你纳入工具箱。

    HiAuth-master_HiAuth_hurtlof_auth2.0集成框架_

    《HiAuth-hurtlof_auth2.0集成框架详解》 在现代的互联网应用开发中,安全认证与授权是至关重要的环节...无论你是初涉认证授权领域的新人,还是经验丰富的开发者,都能从中受益,快速构建出符合安全标准的高质量应用。

    java及java EE面试大全

    Java及Java EE面试大全主要涵盖了Java语言的基础知识、数据结构、算法、设计模式以及Java EE的相关概念。以下是对这些知识点的详细阐述: 1. **数据结构**: - **链表**:链表是一种线性数据结构,其中的元素不是...

    生成式智能媒体对涉华议题的媒介记忆-以ChatGPT为例.pdf

    ChatGPT作为一款人工智能驱动的语言模型,以其强大的数据处理能力和算法优化,重新定义了信息传播的方式,对人们的思维方式和行为模式产生了深远影响。然而,尽管ChatGPT声称其服务具有客观中立性,但其训练数据主要...

    大数据与侦查模式变革设计研究.doc

    【大数据与侦查模式变革设计研究】 大数据的兴起对犯罪侦查带来了深远的影响,推动了侦查模式的根本性变革。这种变革不仅仅是技术层面的更新,更是理念、方法和策略的全面升级。大数据时代,犯罪侦查需要适应复杂...

    国际化程序与国际市场进入策略.pptx

    瑞典Uppsala大学的Johanson与Vahlne提出了国际化渐进程序理论,指出企业在面临诸多不确定性时,会采取逐步深入国际市场的策略,通过在不同阶段的涉入来降低风险和成本。 企业国际化的过程可以分为四个主要阶段:非...

    Python库 | nbgrams-1.0-py3-none-any.whl

    《Python库nbgrams-1.0-py3-...无论你是初涉NLP的新手,还是经验丰富的专家,这个库都值得你去探索和利用。在实际项目中,结合nbgrams库,你将能够更深入地挖掘文本数据中的模式和信息,实现更复杂的自然语言处理任务。

Global site tag (gtag.js) - Google Analytics