设计模式(四)_JAVA_编程开发_程序员俱乐部
中国优秀的程序员网站
程序员频道
CXYCLUB技术
地图
最新资讯
|
百度新闻
|
GOOGLE地图
|
RSS订阅
|
更多
职场话题
生活休闲
恋爱交友
程序人生
学习进修
职业发展
项目管理
求职面试
程序员创业
JAVA
.NET
C/C++
Ruby
Delphi
JavaScript
PHP
ASP
JSP
HTML
XML
移动开发
开发工具
其他
编程开发
数据库
操作系统
新闻资讯
互联网
非技术区
非技术区
生活休闲
恋爱交友
职业发展
求职面试
程序人生
移动开发
开发工具
DB2
MySql
Sybase
开发
JAVA
.NET
PHP
C/C++
数据库
SQL Server
Oracle
互联网
运营
推广
营销
SEO
系统
Linux
Unix
Windows
资讯
动态
产品
人物
创业
职场
学习
管理
热搜:
分享
小米
高手
大型网站
天猫
回溯
循环
SWT
class
instance
摄像头
NullPointerException
二维码
controller
二进制
分享
小米
高手
大型网站
天猫
回溯
循环
SWT
class
instance
更多>>
您所在的位置:
程序员俱乐部
>
编程开发
>
JAVA
> 设计模式(四)
设计模式(四)
2017/7/30 21:38:44 万小翼
程序员俱乐部
我要评论(
0
)
摘要:
13.访问者模式访问者模式也称为Visitor模式,使用这种模式后可以在不修改已有程序结构的前提下,通过额外添加“访问者”来对已有代码的功能实现提升。表示一个作用于某对象结构中的各元素的操作。它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。构成访问者模式的角色如下:1.访问者角色(Visitor):为该对象结构中的具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色。这样访问者就可以通过该元素角色的特定接口直接访问它。2
标签:
模式
设计
设计模式
13.访问者模式
访问者模式也称为Visitor模式,使用这种模式后可以在不修改已有程序结构的前提下,通过额外添加“访问者”来对已有代码的功能实现提升。表示一个作用于某对象结构中的各元素的操作。它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
构成访问者模式的角色如下:
1.访问者角色(Visitor):为该对象结构中的具体元素角色声明一个访问操作
接口
。该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色。这样访问者就可以通过该元素角色的特定接口直接访问它。
2.具体访问者角色(Concrete Visitor):实现每个由访问者角色(Visitor)声明操作。
3.元素角色(Element):定义一个Accept操作,它以一个访问者为参数。
4.具体元素角色(Concrete Element):实现由元素角色提供的Accept操作。
5.对象结构角色(Object Structure):这是使用访问者模式必备的角色。它要具备以下特征—能
枚举
它的元素;可以提供一个高层的接口以允许该访问者访问它的元素;可以是一个复合(组合模式)或是一个集合,如一个列表或一个无序集合。
适用访问者模式的情况
(1)一个对象结构包含很多类对象,它们有不同的接口,而我们想对这些对象实施一些依赖于其具体类的操作。
(2)需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而我们想避免让这些操作“污 染”这些对象的类。Visitor使得我们可以将相关的操作集中起来,定义在一个类中。(3)当对象结构被很多应用共享时,Visitor模式让每个应用仅包含需要用到的操作。
(4)定义对象结构的类很少改变,但经常需要在此结构上定义新的操作。改变对象结构类需要重定义对所有访问者的接口,这可能需要很大的代价。如果对象结构类经常改变,那么可能还是在这些类中定义这些操作较好。
14.策略模式
策略模式又被称为
算法
族模式,就是定义了不同的算法族,并且相互之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
策略模式属于对象行为型模式,主要针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。通常,策略模式适合于当一个应用程序需要实现一种特定的服务或者功能,而且该程序有多种实现方式时使用。
在策略模式中有如下几个对象:
1.环境对象:该类中实现了对象策略中定义的接口或者抽象类的引用。
2.抽象策略对象:它可由接口或抽象类来实现。
3.具体策略对象:它封装了实现不同功能的不同算法。
“刘备回荆州问题”刘备要到江东娶老婆,走之前诸葛亮给伴郎赵云三个锦囊妙计,说是按天机拆开能解决棘手问题。先说说这个场景的三要素:三个妙计,一个锦囊,一个赵云。妙计是亮哥给的,妙计放在锦囊里,俗称就是锦囊妙计。那赵云就是一个干活的人,从锦囊里取出妙计,执行,然后获胜。如果用Java 来表示这个过程,则具体实现流程如下所示。
class='magplus' title='点击查看原始大小图片' />
大小: 2.3 KB
大小: 4.8 KB
大小: 5.1 KB
大小: 3 KB
大小: 10.3 KB
大小: 9.3 KB
大小: 10.2 KB
大小: 26 KB
大小: 19.7 KB
大小: 4.8 KB
大小: 115.2 KB
大小: 5.9 KB
大小: 8.7 KB
大小: 5.5 KB
大小: 8 KB
大小: 10.1 KB
大小: 24.4 KB
大小: 4.4 KB
查看图片附件
上一篇:
ANR异常
下一篇: 没有下一篇了!
相关文章
·
设计模式(四)
·
微软宣布为Linux设计的Windows
·
屏占比夸张!小米MIX2设计图首曝光:屏
·
Win 10 Mobile Build
·
魅族PRO 7开箱:这背部开窗的设计,你
·
使用装饰设计模式加密数据
·
c# 设计模式之单例模式
·
阿里二手车尝试新零售模式:通过授权线下店
·
谈一款MOBA类游戏《码神联盟》的服务端
·
【原创】EntityFramework
查看所有评论(
0
)
我要评论
发表评论
用户名:
匿名
最新文章
设计模式(四)..
ServerS..
·
设计模式(四)
·
redis 性能提升/优化
·
java HttpServletRequ
·
java操作Excel
·
启动TOMCAT报错 java.util
·
集合框架之链表集合算法
·
局域网文件传输
·
编写使用多线程的希尔(Shell)排序
·
ReentrantLockd的其他方法源
·
ubuntu通过压缩包安装JDK
·
java 项目中通过JDBC 实现sql
·
ServerSocket与Socket类
·
使用装饰设计模式加密数据
·
java处理emoji表情的方法
·
java测试线程同步synchroniz
最新标签
分享
小米
高手
大型网站
天猫
回溯
循环
SWT
class
instance
今日热点
·
全面认识Eclipse中JVM内存设置
·
struts标签实现菜单动态级联
·
JDK1.6官方下载地址
·
SSH2整合-附源码
·
ActiveMQ 中的消息持久化(二)
·
研磨设计模式之抽象工厂模式-1
·
研磨设计模式之装饰模式-4
·
java博客系统源代码
·
研磨设计模式 封面show
·
超经典的设计模式文章
推荐文章
unable ..
老..
·
The last pack
·
unable to find valid
·
老三携剑出山,Swing法力
·
java poi 创建exc
·
Errors occurre
·
[linux]ubuntu下
·
java 两数相除 四舍五入
·
Java 调用远程webservice接
·
Hadoop学习全程记录——
·
JAVA 比较两张图片的相似
·
J2EE、JAVA开源版OA发布了(JO
·
在linux下用tomcat
·
异常ognl.OgnlExc
·
Eclipse设置Tomcat启动超时时
·
org.springfra
English
|
关于我们
|
诚聘英才
|
联系我们
|
网站大事
|
友情链接
|
意见反馈
|
网站地图
Powered by
程序员俱乐部
程序提供: HugoCMS 2.0
网站备案:苏ICP备11048748号-1