`
yidongkaifa
  • 浏览: 4072645 次
文章分类
社区版块
存档分类
最新评论

学习设计模式经验总结

 
阅读更多

如果你的应用基于容器,那么Singleton模式少用或者不用,可以使用相关替代技术

Singleton模式看起来简单,使用方法也很方便,但是真正用好,是非常不容易,需要对Java的类 线程 内存等概念有相当的了解

CoR 的优点:
因为无法预知来自外界(客户端)的请求是属于哪种类型,每个类如果碰到它不能处理的请求只要放弃就可以。

缺点是效率低,因为一个请求的完成可能要遍历到最后才可能完成,当然也可以用树的概念优化。 在Java AWT1.0中,对于鼠标按键事情的处理就是使用CoR,到Java.1.1以后,就使用Observer代替CoR

扩展性差,因为在 CoR中,一定要有一个统一的接口Handler.局限性就在这里。

与Command模式区别:

Command 模式需要事先协商客户端和服务器端的调用关系,比如 1 代表 start 2 代表 move 等,这些 都是封装在 request 中,到达服务器端再分解。

CoR 模式就无需这种事先约定,服务器端可以使用 CoR 模式进行客户端请求的猜测,一个个猜测 试验。

Command是将行为进行封装的典型模式,Factory是将创建进行封装的模式


实际整个Strategy的核心部分就是抽象类的使用,使用Strategy模式可以在用户需要变化时,修改量很少,而且快速.

Strategy和Factory有一定的类似,Strategy相对简单容易理解,并且可以在运行时刻自由切换。Factory重点是用来创建对象。

Strategy 适合下列场合:

1.以不同的格式保存文件;

2.以不同的算法压缩文件;

3.以不同的算法截获图象;

4. 以不同的格式输出同样数据的图形,比如曲线 或框图bar等


使用Visitor模式的前提
使用访问者模式是对象群结构中 (Collection) 中的对象类型很少改变。

在两个接口Visitor和Visitable中,确保Visitable很少变化,也就是说,确保不能老有新的Element元素类型加进来,可以变化 的是访问者行为或操作,也就是Visitor的不同子类可以有多种,这样使用访问者模式最方便.

如果对象集合中的对象集合经常有变化, 那么不但Visitor实现要变化,Visistable也要增加相应行为,GOF建议是,不如在这些对象类中直接逐个定义操作,无需使用访问者设计模 式。

但是在Java中,Java的Reflect技术解决了这个问题,因此结合reflect反射机制,可以使得访问者模式适用范围更广了。

1
分享到:
评论

相关推荐

    设计模式精解- GoF 23种设计模式解析附C++实现源码

    一直想把自己的学习经验以及在项目中的应用经历拿出来和大家共享,却总是下不了这个决心:GoF的23种模式研读、总结也总需要些时日,然而时间对于我来说总是不可预计的。 之所以下了这个决心,有两个原因:一是Robert的...

    传智播客C++设计模式教程

    模式 在一定环境中解决某一问题的方案,包括三个基本元素--问题,解决方案和环境。 大白话:在一定环境下,用固定套路解决问题。...学习设计模式的意义 提高职业素养,关注学员在行业内的长期发展

    Java23种设计模式总结

    设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统...

    白话java23设计模式

    设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统...

    设计模式笔记(包含所有设计模式)个人总结提炼笔记

    设计模式是一种解决软件设计问题的经验总结,是在软件开发过程中经过反复验证的最佳实践。设计模式提供了一套通用的解决方案,可以帮助开发人员更好地组织和设计代码,提高代码的可读性、可维护性和可扩展性。 设计...

    设计模式 带目录标签

    这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下...

    设计模式最全学习文档.one

    关于设计模式的教程,解析 ...设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。

    设计模式学习资料汇总.zip

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段...

    Java设计模式

    设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统...

    设计模式 GOF 23

    本书设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用...

    设计模式可复用面向对象软件的基础.zip

    本书设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用...

    设计模式:可复用面向对象软件的基础--详细书签版

     本书结合设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别...

    设计模式精解-GoF 23种设计模式解析附C++实现源码

    一直想把自己的学习经验以及在项目中的应用经历拿出来和大家共享,却总是下不了这个决心:GoF的23种模式研读、总结也总需要些时日,然而时间对于我来说总是不可预计的。 之所以下了这个决心,有两个原因:一是Robert...

    论设计模式的重要性-《重学设计模式》

    那么我们为什么还要学习设计模式? 一方面,设计模式教我们如何使用面向对象设计的原则解决各种问题; 另一方面,设计模式定义了一种通用语言(跟框架一样,统一一个标准),让大家在做系统设计的时候,能更有效...

    个人经验总结,学习笔记,周报,日报等 内容包含:面试资料,Java学习资料(算法,数据结构,设计模式,JVM调优,MQ,缓存

    个人经验总结,学习笔记,周报,日报等。主要以文档格式为主,内容包含:面试资料,Java学习资料(算法,数据结构,设计模式,JVM调优,MQ,缓存(redis),微服务),英语学习资料等等。项目内部的readme.md文件有...

    设计模式整体框架与结构

    设计模式是软件开发中用于解决常见问题的一套最佳实践和经验总结。它们有助于提高代码的可重用性、可读性和可靠性。以下是设计模式的关键要点: 定义:设计模式是一种在软件设计过程中反复出现的问题的解决方案。...

    设计模式pdf设计模式学习资料

    本书设计实例从面向对象的设计中精选出 23 个设计模式,总结 了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出 来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些 模式在实用环境下有...

    c++设计模式GoF23

    一直想把自己的学习经验以及在项目中的应用经历拿出来和大家共享,却总是下不了这 个决心:GoF 的 23 种模式研读、总结也总需要些时日,然而时间对于我来说总是不可预计 的。 之所以下了这个决心,有两个原因:一是 ...

    23中设计模式学习笔记.docx

    软件设计模式(Software Design Pattern),有称设计模式,是一套被反复使用,多数人知晓的,经过分类编目的、代码设计经验的总结。他描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也...

    传智扫地僧设计模式基础课程讲义

    模式 在一定环境中解决某一问题的方案,包括三个基本元素--问题,解决方案和环境。 大白话:在一定环境下,用固定套路解决问题。... 学习设计模式的意义 提高职业素养,关注学员在行业内的长期发展。

Global site tag (gtag.js) - Google Analytics