当前位置:首页 > Java程序 > 正文内容

java中的设计模式及使用场景(java设计模式及应用案例)

abcsky886个月前 (10-29)Java程序87

本篇文章给大家谈谈

在数据展示的时候,我们都知道,干巴巴的罗列数字,并不直观如果有柱状、折线、饼图之类的对比图,做到数据可视化,则会一目了然在技术领域也一样,有些概念,都是开发经验丰富的「老司机」写出来,相当的浓缩,需要阅读者有相当的开发经验才能化得开,理解透彻。

java中的设计模式及使用场景(java设计模式及应用案例)

如果在技术内容中,能够像数据可视化一样,增加「饼图」,给我们画个饼,就更易于理解可谓一图胜 千言啊今天我们推荐两本能给我们在技术内容之外「画饼」的书,便于吸收,一口气上五楼 设计模式一直以来,在软件开发领域,有一些类似珍稀武功秘籍一样的内容,掌握之后,可以将软件设计得更优美,对于开发能更便于解耦和扩展,这其中之一就是「。

设计模式」此外,seo查询百科对于模式,在我们技术人员讨论方案,这个模式相当于一种共同可以理解的语言,说这里用个单例,那里需要代理,彼此即可意会也正因为通用,在软件开发中会经常看到设计模式,特别是开源软件盛行的今天,理解了设计模式,我们在阅读开源代码时,能更快地理解作者的设计意思,抓住脉络。

我在之前的几篇文章里写过 Tomcat 源代码中的设计模式使用,可以搭配着看和Tomcat学设计模式 | 责任链模式及Filter的工作原理和Tomcat学设计模式 | 模板方法模式和Tomcat学设计模式 | 发布-订阅模式。

和Tomcat学设计模式 | Facade模式与请求处理我们最早听说设计模式估计都是从课堂上老师的口中,或者某seo查询百科些技术书籍中,类似于这里使用了工厂模式、那里使用了模板方法模式,其中有一个地方用到了策略模式

等等说到这些模式之后,基本都会提到鼎鼎大名的 GoF——设计模式四人帮正是这四个人将这一系列在软件开发中可能经常用到,又经过时间考验的模式提炼加工,并为之命名,成为我们今天看到的这常用的 23 种模式的样子。

以往我们提到设计模式,基本的划分方式都是按照 GoF 的分类:结构型模式创建型模式行为型模式比如把 Factory、Singleton 归为创建型模式,把 Facade、 Adapter 归为结构型模式,把 Strategy、Template Method 等归为行为型模式。

GoF 的描述,相对比较seo查询百科精炼,需要反复阅读才能理解其中设计的精妙,或者需要有较丰富的 OOP 经验。最近发现一本讲述设计模式的书《图解设计模式》

这本书并没有沿袭 GoF 一直以来的模式划分方式,而是更细致地根据具体作用,将分类做了细化比如:交给子类—— Template Method、Factory Method 模式生成实例——  Singleton、Prototype 模式。

分开考虑—— Bridge、Strategy 模式简单化—— Facade、Mediator 模式管理状态—— Observer、Memento 模式同时对于模式,初学者一直的困扰是「这都是啥?」根据名字并不能直观地理解这个模式大致的意图

这个seo查询百科在书中也都给一一做了简要描述在《图解设计模式》一书中,对每个模式都会有一个形象的图来概括这个模式,同时还有一句简短且易于理解的句子来描述模式比如对于策略模式:整体的替换算法通过这句描述可以比 Strategy 能更好地理解模式背后的意思吧?在讲解模式时,还有一小段文字来详细的描述。

另外,再辅以下方在不同情况下适配的不同插头,很形象

在对模式的讲解中,会先通过软件开发的「通用语言」- UML 图来展示,在这之后会有具体的代码代码之外,作者的书还有一个特点:将模式中各个涉及到的类抽象为「角色」就像影视剧一样,通过角色来理解剧情,而不是仅着眼于具体的示例代码,不能做到活学活用。

同时,每个模式最后,会有seo查询百科「拓展思路的要点」和「相关的设计模式」两部分内容第一部分相当于追问使用之后有哪些优势及劣势,第二部分则会对比类似的模式当然,对于模式的学习,正如作者在书中所说,不能只看书里的案例,还要自己思考一些案例,同时理解模式中对应的角色,通过抽象的角色来面对模式适用的不同场景,将模式化用到设计与编程中。

Java并发编程坦白地说,对于任何编程语言来说,多线程编程都不是个容易学的内容这源于多线程编程的复杂性方法的互斥,内存的可见性、线程的切换与优先级、死锁、甚至环境的复杂与隐蔽等,有些单线程处理正常的程序,放到多线程环境中会有各种各样的问题。

问题产生后还难以复现但多线程又是一个不得不面对的问题,机器硬件性能seo查询百科越来越高,核越来越多,相应的软件却没有利用起来,岂不是暴殄天物!在 Java 并发编程方面,一直以来神书是 Brian Goetz 的《Java并发编程实战

》此外就是已经绝版的 Doug Lea 的著作那对于信息量不小的 Java 并发编程,往往每个概念都会让人望而却步比如 Java 内存模型(JMM),比如 volatile 如何影响可见性与指令重排序,什么是 Happens-Before,如何应用线程池,wait 与 notify 是如何工作的,如何分别针对读与写的线程进行优化?。

关于内存可见性,如果有这样一张图,会不会清晰明了呢?我们看到 volatile 在读写时,两只小眼睛一直盯着共seo查询百科享内存中的数据,不受缓存的干扰。

这里推荐的是与前面的《图解设计模式》同一作者的书《图解Java多线程设计模式》,通过模式的方式来讲述 Java 并发编程。

讲述风格同前面的书一致,依然是一图胜千言。比如读写锁,写的线程就会被阻塞,等待锁:

对于并发涉及到的关键「人物」,也通过模式中的「角色」来描述:

书中除通过模式讲解并发知识外,在每个模式后,会有「扩展阅读」部分,描述这些内容在 JDK 里是怎样实现的对于多线程最重要的是理解这背后的一系列概念,从而在使用多线程时不至于出错——在需要互斥时候并没有锁,需要保证内存可见性进行线程状态的控制时,仅仅用了一个普通变量,忘记了volatile,在使用线程池时seo查询百科没有理解 Worker Thread 的原理,都会导致问题。

而理解了这些内容,才能避免怪异的问题,减少为此加班  :) 关于并发,我在之前的文章里也写过一些:大话ThreadLocalJava并发编程相关概念及注意事项白话描述并发编程重要概念看Tomcat如何进行并发编程

END文章转载自『 Tomcat那些事儿 』

图灵图解系列技术书图灵日系 [ 图解X ] 技术入门书,因其文笔简练、深入浅出、多图表、形象生动的风格深得程序员喜爱加上日本作者极为细腻的叙事风格,图灵翻译方面的良好保障,这一系列已经成为程序员快速了解相应领域的首选参考书。

到目前为止,这个书单共包括 13 本书图解系列图书作者都是日seo查询百科本知名技术人士,比如《图解设计模式》的作者是大家非常熟悉的结城浩桑,很多读者应该读过他写的《程序员的数学》《图解密码技术》《数学女孩》......只能说,他写的书实在是太好了!。

【阅读原文】查看图灵图解系列图书。如果你喜欢这两本图书,如下购买方式:

图解设计模式京东:https://item.jd.com/12019365.html当当:http://product.dangdang.com/24157561.html

图解Java多线程京东:https://item.jd.com/12165317.html当当:http://product.dangdang.com/25153039.html唠seo查询百科两句这点儿有活跃的不?今天被这两本书中的设计模式漫画图萌化了,越来越粉结城浩大大了。

有读完这两本书的读者吗?你觉得我们今天的推送涉及几种设计模式?今天就送 1 本书吧,这两本书都没样书可送了... 明天中午就选出这位读者☟【阅读原文】查看图灵图解系列图书

扫描二维码推送至手机访问。

版权声明:本文由海南拓宏网络科技工作室发布,如需转载请注明出处。

本文链接:http://4blc.com/post/773.html

分享给朋友:

“java中的设计模式及使用场景(java设计模式及应用案例)” 的相关文章

做网络安全用什么语言(网络安全行业是干嘛的)

今天给各位分享 图片来源@视觉中国【本文来自钛媒体特色栏目「快公司」】C++、python、Java这些都是我们耳熟能详的计算机编程语言,而随着计算机编程语言的多元化,同一系统下的工具和应用在使用不同语言编程时,往往在互相调度、配合的过程中出现一些问题。 特别是对于网络安全...

cnfs公链(公链nft)

本文分享给大家的是: 风险提示根据银保监会等五部门发布的《关于防范以“虚拟货币”“区块链”名义进行非法集资的风险提示》,请读者遵守所在地区法律法规,本文内容报道不对任何经营与投资活动推广进行背书,请投资者提高风险防范意识吴说区块链刊载内容未经许可,禁止进行转载、复制等,违者将追究法...

培训机构学java学的难受(java培训机构出来工资多少)

今天给各位分享 近年来IT行业火热,因为薪资高的原因,很多人都想转行去学IT,所以JAVA培训机构就应运而生了但培训完之后就发现了这样一个问题,刚从培训机构出来的Java程序员且无工作经历该如何找工作?  由于很多无良Java培训机构为了盈利并没有可靠的教学质量,培训出来的人没有真...

java计算机培训学校(计算机java就业前景)

本篇文章给大家谈谈 对即将毕业的大学生来说,大学读计算机科学与技术专业是否需要参加JAVA技术培训?鉴于技术岗位的特殊性,企业都需要你具备一定的项目能力,想往JAVA技术方向发展,那么参加培训就是有必要的听听在培训的同学怎么说,可以给我们更多的启发。 本文内容摘自粤嵌星计划...

阿里巴巴java开发工程师待遇(阿里巴巴java开发工程师工资)

本文分享给大家的是: 作者 | 李艳鹏编辑 | Sandra原文 | http://www.jianshu.com/p/5b6d180bd1c2写在前面前一阶段发布了《白话阿里巴巴Java开发手册(编程规约)》后,很多人与我探讨流程制度和研发标准的必要性,我曾经和大家做了...

2月23号黄金的价格(2.20黄金价格)

本文分享给大家的是: 今天是2月24日,金店黄金价格有涨有跌,变动幅度不大,最大变幅为3元/克,金价还是很高的目前,金价最高的金店为老凤祥、周大生,跌幅分别为3元/克、0元/克,报价536元/克而金价最低的金店也还是中国黄金,。 报价488元/克。今日黄金价格高低差为48元...