每周学点设计模式——策略模式(上)-java开发java经验技巧

每周学点设计模式——策略模式(上)-java开发java经验技巧

ID:31002220

大小:68.00 KB

页数:4页

时间:2019-01-05

每周学点设计模式——策略模式(上)-java开发java经验技巧_第1页
每周学点设计模式——策略模式(上)-java开发java经验技巧_第2页
每周学点设计模式——策略模式(上)-java开发java经验技巧_第3页
每周学点设计模式——策略模式(上)-java开发java经验技巧_第4页
资源描述:

《每周学点设计模式——策略模式(上)-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、每周学点设计模式——策略模式(上)-JavaJT-发Java经验技巧每周学点设计模式——策略模式(上)木文作者:ImportNew・唐尤华未经许可,禁止转载!写在前面为什么要学习设计模式掌握设计模式对于程序开发有很多益处。首先,掌握设计模式可以借鉴前人的经验吸取已知的教训,让设计出的程序更具扩展性更好地应对需求的变化。其次,在开发人员F1常的交流和沟通中可以理解对方说的行话。最后,可以顺利解答面试过程中设计模式的相关问题。为什么要写这个系列博客作为一名Java开发者,在学习设计模式的过程中我遇到了一些问题和困难。如何更好地了解和记住这些模式?在日常的开发中,有哪些东西运用了设计模式?通过设计

2、模式如何解决实际遇到的问题,比如哪些场景会自然联想到运用某种模式?相信大家可能也有类似的疑问。于是便冇了写作“每周学点设计模式”系列博客的动力。目标是读过这个系列博客的朋友能够通过实例和场景更好地掌握设计模式相关知识,并且能够在自己的日常开发和学习过程屮发现并使用设计模式。博客的内容安排设计模式学习以GOF经典的23个模式为提纲,每个模式单独讲解分为上、下两篇。上篇会介绍模式的基本概念,并通过示例对模式的内容进行分析,最后是一些练习。练习涉及此模式相关的常见问题和示例分析题。通过练习可以巩固模式基木概念,并对身边的实例有分析和学习。下篇是练习讲解,我会给出自己对于这些问题的一些分析。一方面是

3、自己学习的总结,另一方面可以作为参考解答与大家交流和探讨。设计模式本身不局限某种语言。这里的问题和示例以Java语言为主。策略(Strategy)模式(上)这是“每周学点设计模式”系列中的策略模式。读完Z后,你应该能回答以下几个问题:•了解策略模式要解决的主要问题•举出常见的策略模式使用场景•说出JDK中运用策略模式的实例注意:在阅读下篇之前请自己思考习题部分的问题,练习和独立思考对掌握模式知识的效果非常重要。0、一份程序设计需求规格说明请编写程序对输入框中的内容进行有效性检验。例如身份证信息输入框必须输入有效的身份证号码,密码输入框必须由字符、数字和至少一个符号组成。有效性检验通过Vali

4、dator对象对输入框内容进彳亍检查。对不同的国家,身份证和邮编遵循不同的验证规则,密码强度检验可由系统管理员进行配置。是的,这份功能说明里最重要的两个关键词就是“规则”和“配置”。当你需要实现一组规则(算法),并且这些规则要求可配置和可扩展时,策略模式会是你的好帮手。1、策略模式的抽象过程简单的说,策略模式就是要应对规则变化和新规则加入对程序带来的影响。对于面向对象程序设计如何实现呢?通过接口口J以避免直接调用规则,从而使得业务变化不会对规则产生影响。同时,添加新规则也不会影响业务流程。2、示例分析冋到开始的需求,对于Validator我们可以定义一个统一的接口,同时针对不同类型的验证实现

5、具体的算法达到对扩展的要求。当有输入时,Text控件会调用口己的Validator0每个Validator会根据口己的实现分别应用规则返回验证结果。•控件验证逻辑只打Validator接口相关:实现了业务打规则的隔离•只需实现Validator接口即町添加新规则3、习题#1・请说明策略模式符合哪些面向对象设计原则?提示:而向对彖的5个基本设计原则冇单一职责原则、开放封闭原则、Liskov替换原则、依赖倒置原则和接口隔离原则。#2.请说明策略模式有什么优点和缺点。#3.请用说明下列JavaAPI设计中是如何使用策略模式的?•Java.util.Collections#sort(List?lis

6、t,Comparatorc)•java.util.Arrays#sort(T[],Comparatorc)•Java正则表达式Pattern•ThreadPoolExecutor屮的ThreadFactory和RejectedExecutionHandler•hashmap中对hashcodc的计算•runnable为executor•recursive和forkjoin#4.分析SWT中的RowLayout>FormLayout>GridLayout是如何运用设略模式的?关于作者:唐尤华我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜

7、战不眠不休;面对困难,能够迎难而上挑战白我。他们也会感到困惑与傍徨,但每个程序员的心屮都冇一个比尔盖茨或是乔布斯的梦想“用智慧开创屈于自己的事业”。我想说的是,其实我是一个程序员。(新浪微I■専:@唐尤华)查看唐尤华的更多文章»

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。