学习设计模式的好网站

news/2024/5/18 18:35:36/文章来源:https://blog.csdn.net/KimSoft/article/details/7197131

http://www.riabook.cn/doc/designpattern/


From Gossip@caterpillar

非关语言: 设计模式

设计模式并不神秘。。。程式设计是思维具体化的一种方式,是思考如何解决问题的过程,设计模式是在解 决问题的过程中,一些良好思路的经验集成,最早讲设计模式,人们总会提到 Gof  的著作,它最早将经典的 23 种模式集合在一起说明,对后期学习程式设计,尤其是对从事物件导向程式设计的人们起了莫大的影响。

后来设计模式一词被广泛的应用到各种经验集成,甚至还有反模式(AntiPattern),反模式教导您如何避开一些常犯且似是而非的程式设计思维。

这边的话将整理一些设计模式学习心得,实作的部份是使用Java,因而您会看到一些与 Gof 模式不同的图及实作方式,这是为了善用一些Java本身的特性,至于C++的实作方面,Gof 的书已经给了不少的例子。

在一些模式的实作上,您会发现我用了介面(interface)来取代抽象类别(Abstract class),这与原先的Gof书中的范例会不尽相同,这是因为在C++中没有介面,一个完全没有实作任何方法的抽象类别,根据当时描述的主题特性,可以 的话会将之换为介面,在语义上会较符合Java语言的特性,但是您要知道的是,介面与完全没有实作任何方法的抽象类别在某些时候是可以互换的。

在这边所看到的 UML 图都是使用 Jude 绘制的,Jude 是一个纯 Java 撰写的 UML 工具程式,可运行与 Windows、Linux 等多个平台,体积小,使用简易。


Gof 模式
    以下的设计模式则是我个人从 Gof 学习中的个人体会与实作,并增加几个导入或衍生的简单模式。
  • Creational 模式
物件的产生需要消耗系统资源,所以如何有效率的产生、管理 与操作物件,一直都是值得讨论的课题, Creational 模式即与物件的建立相关,在这个分类下的模式给出了一些指导原则及设计的方向。
    • Simple Factory 模式
    • Abstract Factory 模式
    • Builder 模式
    • Factory Method 模式
    • Prototype 模式
    • Singleton 模式
    • Registry of Singleton 模式

  • Structural 模式
如何设计物件之间的静态结构,如何完成物件之间的继承、实 现与依赖关系,这关乎着系统设计出来是否健壮(robust):像是易懂、易维护、易修改、耦合度低等等议题。Structural 模式正如其名,其分类下的模式给出了在不同场合下所适用的各种物件关系结构。
    • Default Adapter 模式
    • Adapter 模式 - Object Adapter
    • Adapter 模式 - Class Adapter
    • Bridge 模式
    • Composite 模式
    • Decorator 模式
    • Facade 模式
    • Flyweight 模式
    • Proxy 模式(一)
    • Proxy 模式(二)

  • Behavioral 模式
物件之间的合作行为构成了程式最终的行为,物件之间若有设 计良好的行为互动,不仅使得程式执行时更有效率,更可以让物件的职责更为清晰、整个程式的动态结构(像是物件调度)更有弹性。
    • Chain of Responsibility 模式
    • Command 模式
    • Interpreter 模式
    • Iterator 模式
    • Mediator 模式
    • Memento 模式
    • Observer 模式
    • State 模式
    • Strategy 模式
    • Template Method 模式
    • Visitor 模式

多执行绪模式
    在很多应用中都会使用多执行绪,尤其是在Web应用中,多执行绪以 Gof 整理的模式为基础,考量多执行绪环境中,如何组合这些基本模式来完成多执行绪安全要求。
  • Guarded Suspension 模式
  • Producer Consumer 模式
  • Worker Thread 模式
  • Thread-Per-Message 模式
  • Future 模式
  • Read-Write-Lock 模式
  • Two-phase Termination 模式
  • Thread-Specific Storage 模式


参考资料
    以下是以Java实作设计模式的介绍网站,从下面的连结开始,当中您可以找到更多设计模式的资源。
  • Huston Design Pattern
  • The Design Patterns Java Companion
  • 板 桥里人的 Java 设计模式学习心得
  • UML 软件工程组织




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_845437.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电商项目实战之web网站测试--业务

web电商项目 一:web测试的目的: web测试就是基于B/S框架的软件产品的测试,通俗点来说就是基于web网站的测试。 路线图:前期准备--需求评审---设计评审---测试计划---功能测试---环境搭建---测试用例---测试架构---性能测试--安…

电商项目实战之web网站测试--非业务

Web实战测试 一:网络基础知识:http 3,,Web浏览器发送请求头信息一(1) 1,建立TCP连接 -----(https://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html) 2,Web浏览器向…

python微信公众号微信用户绑定第三方网站

场景 例如,某用户在第三方购物平台的账号(user_id/手机号码等)需要跟该用户的微信账号进行绑定, 实现在该购物平台的微信公众号中查询个人信息, 消费记录, 充值记录等操作.总的来说便是,将微信用户的open_id跟第三方网址user_id/手机号码等进行一对一关联 实现方案 微信用户…

转 -- HTTP Caching 优化网站

原文出处:http://blog.chenlb.com/2009/07/http-caching-optimize-your-site.html HTTP Caching 用好了,可以极大的减小服务器负载和减少网络带宽。十分有必要深入了解下 http 的 caching 协议。 先来看下请求/响应过程: http 请求/响应 1、用…

WordPress快速增加百度收录,加快网站内容抓取

本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发、Nodejs、Python、Linux、IT资讯等板块. 利用百度站长平台提供的链接自动提交代码, 快速增加百度收录, 加快网站内容抓取。 1.创建名为 “baidu_js_push.php”的文件, 内容如下…

转 火山喷发的负载 机场网站的缓存

原址如下: http://developer.51cto.com/art/201209/357025.htm 火山喷发的负载 机场网站的缓存 【51CTO精选译文】与其他许多人一样,我眼下也滞留在欧洲,等待飞回美国的航班。近期的火山喷发不仅影响了欧洲大陆的航班,还影响了全…

跨境电商自建站后台系统原型rp_跨境电商仓储物流选择哪家好?

跨境电商仓储物流选择哪家好?跨境电商仓储物流,是针对跨境电商企业量身定制的仓储物流派送一体化业务,在电商旺季能防止因货物过度导致的处理效率低、出错率高、无法准时发货的问题。在电商淡季,能有效避免仓库租赁费、人工费、水电费、设备…

利用其他网站的搜索结果_什么使您的网站在搜索结果中排名很高?

什么使您的网站在搜索结果中排名很高?自搜索引擎开始流行并成为主流以来,这个问题已经引起了网站所有者和企业所有者的关注。特别是,使网站在搜索引擎上排名较高的原因是,大多数人都使用搜索引擎来找到答案并找到他们想要的东西。…

php计划任务导出数据,如何建立备份数据和网站文件的计划任务

下面由宝塔面板使用教程栏目给大家介绍如何建立备份数据和网站文件的计划任务,希望对需要的朋友有所帮助!建立备份数据和网站文件的计划任务登录宝塔 Web 面板 >> 点击左侧菜单栏“计划任务”>> 添加计划任务中,任务类型选择“备…

如何快速搭建一个个人网站

相必很多人都有建站的想法,但是感觉要学的东西太多。这里给大家教一个很快捷的方法。但是前提是要掌握一部分linux基本的命令。 下面开始个人网站搭建的教程: 第一步:首先我们需要一个服务器,这里推介腾讯云15天免费使用的腾讯cvm…

有哪些你一打开,就令你惊讶的网站?

作者:李大颖链接:https://www.zhihu.com/question/393259130/answer/1235087230来源:知乎----------------不仅仅让你惊讶,这10个在线生成器,更让你沉迷!适用人群:单身狗、宅男、猛女、祖安社会…

有哪些你一打开,就令你惊讶的网站?第二趴

原文链接:https://www.zhihu.com/question/393259130/answer/1558178696----上一篇文章推荐了几个惊奇的网站(有哪些你一打开,就令你惊讶的网站?),这一篇更加炫酷。----我来推荐6个小众神奇网站&#xff0c…

解读大型网站系统架构的演化

2014-09-26 09:53 李平 LEE的博客 字号:T | T大型网站的架构是根据业务需求不断完善的,根据不同的业务特征会做特定的设计和考虑,本文只是讲述一个常规大型网站会涉及的一些技术和手段。 AD:干货来了,不要等!WOT2015 北…

黑客规避搜索引擎 劫持网站流量

最令站长头疼的事莫过于自己的网站被黑。如果没有合适的安全措施,即便站长再怎么用心,也会失去网站的控制权。黑客入侵网站之后,可以在上面搭载钓鱼页面,传播恶意软件,盗取敏感信息等。在这篇文章中,我们将…

DataForSeo serp api 使用

serp 使用搜索引擎结果页 由于谷歌搜索引擎反爬太厉害。 我给大家推荐一个好用的平台: DataForSeo serp api serp 提供前100 的搜索引擎结果指定关键字,搜索引擎和搜索位置的实时数据。 所有的post 数据均以json 格式发送 平台地址: https://…

Nginx网站使用CDN之后禁止用户真实IP访问的方法

原文地址: https://zhangge.net/5096.html做过面向公网 WEB 运维的苦逼们肯定见识过各种恶意扫描、拉取、注入等图谋不轨行为吧?对于直接对外的 WEB 服务器,我们可以直接通过 iptables 、 Nginx 的 deny 指令或者是程序来 ban 掉这些恶意请求…

魔百和服务器网站,魔百盒网关服务器下发超时

魔百盒网关服务器下发超时 内容精选换一换物联网平台提供海量设备的接入和管理能力,配合华为云其他产品同时使用,帮助快速构筑物联网应用,简化海量设备管理复杂性,节省人工操作,提升管理效率。使用设备接入控制台&…

el表达式 range_「el」JSTL标签库和EL表达式总结 - seo实验室

elJSTL标签库与EL表达式JSTL 是JSP的标准标签库,是一个JSP的标签集合 ,按照类别包括核心标签,格式化标签,JSTL函数,sql标签和XML标签 ,其中前三个用的概率较高。要想使用JSTL标签库我们首先要做的就是引入对…

power linux磁盘修复,虚拟存储 - Linux on POWER:开发概览_Linux教程_Linux公社-Linux系统门户网站...

虚拟存储对于存储和 I/O 来说,Linux 可以利用很多真实的设备和虚拟设备。这种灵活性可以非常经济地设置 Linux 分区。就磁盘来说,Linux 逻辑分区可以支持 3 个不同的存储选项:" 内部存储,使用 SCSI 适配器和专门用于这个分区…

超强网站,可以代替你电脑中所有的工具软件

「云」的确是个好东西,信息储存在云端后,我们想用就随时拿来用,不想用存在云里也不占空间。那么,平时用的工具软件,能不能也具备「用完即走」的属性呢? nicetool nicetool 之所以强大,在于集合…