设计模式之禅
java
设计
模式
禅意
乘风御浪云帆之上
行走的菜鸟
展开
-
设计模式之反应器(Reactor)模式
设计模式之反应器(Reactor)模式来源从学习ZeroMQ说起“ZeroMQ几乎所有的I/O操作都是异步的,主线程不会被阻塞。ZeroMQ会根据用户调用zmq_init函数时传入的接口参数,创建对应数量的I/O Thread。每个I/O Thread都有与之绑定的Poller,Poller采用经典的Reactor模式实现,Poller根据不同操作系统平台使用不同的网络I/O模型(select、p...原创 2018-02-11 20:40:29 · 3446 阅读 · 1 评论 -
设计模式之禅之混编【工厂方法模式+策略模式】
设计模式之禅混编2工厂方法模式+策略模式迷你版的交易系统“一卡通”项目联机交易子系统集团公司的架构总部省级分部市级机构业务要求推广到全国,在山西能做的事在全国的其他地方也能做对于联机子项目,异地分支机构与总部之间的通讯联机交易系统有一个非常重要的子模块--扣款子模块从业务上说:扣款失败就代表着所有的商业交易关闭,这是不允许发生的从技术上说:扣款子模块的异常处理、事物处理、鲁棒性都是不容忽视的详细分原创 2018-01-18 14:32:26 · 1970 阅读 · 0 评论 -
设计模式之禅之包装模式群大PK【装饰模式VS适配器模式VS门面模式VS代理模式VS桥梁模式】
包装模式群大PK写在前面这么多的设计模式,大家有没有发觉在很多的模式中有角色是不干活的,他们只充当着黔首作用,你有问题,找我,但是我不处理,我让其他人处理,最典型的就是代理模式了,代理角色接收请求然后传递到被代理角色处理。门面模式也是一样,门面模式的任务就是把请求转发到子系统,类似这种结构的模式还有很多,我们先给这种结构类型的模式起一个名称,叫做包装模式。包装模式:是一种模式,原创 2018-01-13 12:51:36 · 1282 阅读 · 0 评论 -
设计模式之禅之结构类PK【代理模式VS装饰模式】
设计模式之禅PK之结构类结构类设计模式结构类模式:适配器模式桥梁模式组合模式装饰模式门面模式享元模式代理模式相同点:他们都是通过组合类或对象产生更大的结构以适应更高的层次的逻辑需求【代理模式】VS【装饰模式】首先:装饰模式是代理模式的一个特殊应用,两者的共同特点是都具有相同的接口,不同点则是代理模式着重对代理过原创 2018-01-13 12:38:44 · 416 阅读 · 0 评论 -
设计模式之禅之结构类PK【装饰模式VS适配器模式】
设计模式之禅PK之结构类结构类设计模式结构类模式:适配器模式桥梁模式组合模式装饰模式门面模式享元模式代理模式相同点:他们都是通过组合类或对象产生更大的结构以适应更高的层次的逻辑需求【装饰模式】VS【适配器模式】装饰模式和适配器模式在通用类图上没有太多的相似之处,差别比较大他们的功能上有很多【相似】的地方:都原创 2018-01-13 12:40:25 · 380 阅读 · 0 评论 -
设计模式之禅之跨战区PK【策略模式VS桥梁模式】
设计模式之禅跨战区PK前言创建类模式描述如何创建对象行为类模式关注如何管理对象的行为结构类模式则侧重于如何建立一个软件结构实际的应用还是有重叠的,会出现一种模式适用,另一种模式也适用的情况【策略模式】VS【桥梁模式】这对冤家终于碰头了,策略模式与桥梁模式是如此的相似,简直就是孪生兄弟,要把他们分开可不太容易先看看他们的类图策略模式原创 2018-01-13 12:43:16 · 501 阅读 · 0 评论 -
设计模式之禅之跨战区PK【门面模式VS中介者模式】
设计模式之禅跨战区PK前言创建类模式描述如何创建对象行为类模式关注如何管理对象的行为结构类模式则侧重于如何建立一个软件结构实际的应用还是有重叠的,会出现一种模式适用,另一种模式也适用的情况【门面模式】VS【中介者模式】门面模式为复杂的子系统提供一个统一的访问界面,他定义的是一个高层的接口,该接口使得子系统更加容易使用,避免外部模块深入到子系统内部而产生与原创 2018-01-13 12:44:44 · 499 阅读 · 0 评论 -
设计模式之禅之混编【命令模式+责任链模式】
设计模式之禅之混编命令模式+责任链模式搬移UNIX命令在Windows系统上使用UNIX命令UNIX命令命令名选项操作数UNIX规定命令名为小写字母命令名、选项、操作树之间以空格分隔,空格数量不受限制选项之间看可以组合使用,也可以单独拆分使用选项以“-”开头例ls简单列出一个目录下的文件ls原创 2018-01-13 12:46:04 · 1890 阅读 · 0 评论 -
设计模式之禅之创建类PK【工厂模式VS建造者模式】
设计模式之禅PK之创建类创建类设计模式创建类模式:工厂方法模式建造者模式抽象工厂模式单例模式原型模式创建者模式的功能:提供对象的创建和管理职责工厂方法模式、抽象工厂方法模式、建造者模式他们之间有较多的相似性,容易混淆单例模式是要保持在内存中只有一个对象;原型模式是要通过复制的方式产生一个新的对象【工厂模式】VS【建造者原创 2018-01-12 16:21:03 · 794 阅读 · 0 评论 -
设计模式之禅之创建类PK【抽象工厂模式VS建造者模式】
设计模式之禅PK之创建类创建类设计模式创建类模式:工厂方法模式建造者模式抽象工厂模式单例模式原型模式创建者模式的功能:提供对象的创建和管理职责工厂方法模式、抽象工厂方法模式、建造者模式他们之间有较多的相似性,容易混淆单例模式是要保持在内存中只有一个对象;原型模式是要通过复制的方式产生一个新的对象【抽象工厂模式】VS【建原创 2018-01-12 16:23:07 · 475 阅读 · 0 评论 -
设计模式之禅之行为类PK【命令模式VS策略模式】
设计模式之禅PK之行为类行为类设计模式行为类模式:责任链模式命令模式迭代器模式中介者模式备忘录模式观察者模式状态模式策略模式模板方法模式访问者模式【命令模式】VS【策略模式】命令模式和策略模式的类图确实很相似,只是命令模式多了一个接受者(Receiver)角色两者的区别不同点命令模式策略原创 2018-01-12 16:25:28 · 322 阅读 · 0 评论 -
设计模式之禅之行为类PK【策略模式VS状态模式】
设计模式之禅PK之行为类行为类设计模式行为类模式:责任链模式命令模式迭代器模式中介者模式备忘录模式观察者模式状态模式策略模式模板方法模式访问者模式【策略模式】VS【状态模式】在行为类设计模式中,状态模式和策略模式是亲兄弟,两者都非常的相似。那先看看他们的不同吧类图策略模式状态模式原创 2018-01-12 16:27:20 · 397 阅读 · 0 评论 -
设计模式之禅之行为类PK【观察者模式VS责任链模式】
设计模式之禅PK之行为类行为类设计模式行为类模式:责任链模式命令模式迭代器模式中介者模式备忘录模式观察者模式状态模式策略模式模板方法模式访问者模式【观察者模式】VS【责任链模式】为什么把观察者模式和责任链模式放在一起对比呢?看起来这两个模式没有太多的相似性,真的没有吗?我们在观察者中提到了触发链(也叫做原创 2018-01-12 16:29:18 · 564 阅读 · 0 评论 -
设计模式之禅【访问者模式】
真刀实枪之访问者模式从员工的隐私说起通过组合模式可以把整个员工的人员信息都整合起来形成一张企业员工信息树通过迭代器模式可以遍历公司所有的员工现在要把公司的所有人员的信息都汇总起来,那该怎么办,作为一名逻辑工作者,当然先开始设计啦类图类图有了,先按照类图来实现一下吧!Employeepackage c原创 2018-01-12 14:11:11 · 583 阅读 · 0 评论 -
设计模式之禅【状态模式】
真刀实枪之状态模式从电梯说起随着城市的发展,有两样东西的发明在城市的发展中起到非常重要的作用汽车:横向发展电梯:纵向发展既然说电梯,那就看看电梯有哪些动作开门关门运行停止好了,动作有了,设计下类图类图比较通俗易懂,那么先来实现一下,看看有什么问题ILiftpackag原创 2018-01-12 15:25:20 · 534 阅读 · 0 评论 -
设计模式之禅【解释器模式】
真刀实枪之解释器模式从模型公式说起需求,输入一个模型公式,然后输入模型中的参数,运算出结果设计要求公式可以运行时编辑高扩展性效率可以暂不考虑分析下这个需求,还是比较简单的,就是有一套模板,然后填入参数,计算出相应的结果这个需求中的角色主要有两个运算元素【终结符号:这个元素除了赋值以外,不需要做其他的任何处理】运原创 2018-01-12 15:27:04 · 387 阅读 · 0 评论 -
设计模式之禅【享元模式】
真刀实枪之享元模式从报考系统的内存溢出说起内存溢出的两种可能内存泄漏:无意识的代码缺陷,导致的内存泄漏,JVM不能获得连续的内存空间对象太多:代码写的不严谨,产生了很多的对象,内存被耗尽熟悉一下报考系统的业务流程没有账号先进行注册登录填写信息考试科目考试地点准考证邮寄地址。。。确认提交原创 2018-01-12 15:28:45 · 443 阅读 · 0 评论 -
设计模式之禅【桥梁模式】
真刀实枪之桥梁模式从“I have Dream:”说起每个热都有自己的梦想,但只要不是空想,理想是要靠今天的拼搏来实现的现在假设字节的愿望可以自行设计与实现:那么来规划一下自己的事业吧富翁进行时房地产比较火,先来个房地产公司服装业与人们生活息息相关,再来个服装公司不要贪多,先把这两个公司先经营好再说好了,富翁的公司已经规划好,现在原创 2018-01-12 15:29:46 · 422 阅读 · 0 评论 -
设计模式之禅【策略模式】
真刀实枪之策略模式刘备江东娶妻,赵云他容易吗?“在三国演义中,最佩服诸葛亮的地方不是因为他未出茅庐而三分天下的预测,也不是他在赤壁鏖战中借东风的法术,更不是他七擒孟获的策略。那是什么?是他气死周瑜,骂死王朗的气度和风范”为什么说赵云不容易,原因有二:做伴郎,听着挺幸福的刘备的护卫,保护老大的生命不受威胁和安全撤离,即将新娘子娶回家诸葛亮气周瑜原创 2018-01-11 11:11:40 · 460 阅读 · 1 评论 -
设计模式之禅【责任链模式】
真刀实枪之责任链模式“三从四德”--古代妇女的枷锁三从:未嫁从父、既嫁从夫、夫死从子也就是说,一位女性在结婚之前要听从父亲,在结婚之后要听从丈夫的,如果丈夫死了还要听从儿子的。看下类图代码IWomenpackage com.peng.zrl;/** * @author kungfu~peng *原创 2018-01-11 11:09:38 · 470 阅读 · 0 评论 -
设计模式之禅【装饰者模式】
真刀实枪之装饰模式罪恶的成绩单--利用中庸之道来化解斥责同是天涯沦落人:曾经的你有没有考完试让父母在试卷上签字的...先将这件“为了我们好”的事用类图展示一下吧:代码SchoolReportpackage com.peng.zsz;/** * @author kungfu~peng * @data 2017年1原创 2018-01-11 11:11:11 · 363 阅读 · 0 评论 -
设计模式之禅【适配器模式】
真刀实枪之适配器模式上帝才能控制的事-业务发展“智者千虑必有一失,愚者千虑亦有一得”系统开发时,不管之前的可行性分析、需求分析、系统设计处理的多么完美,总会在关键时候出一些意外,该面对的是躲不了的,那该怎们弥补呢?从一个项目说起--这个项目是一个人力资源项目,分为三大模块:人员信息管理,薪酬管理,职位管理。当时的需求是这样的:人员信息管理的对象是所有员工原创 2018-01-11 11:13:25 · 576 阅读 · 0 评论 -
设计模式之禅【迭代器模式】
真刀实枪之迭代器模式从整理项目说起老板要看项目,但是有点乱,让我整理下,简单,说干就干类图先上代码跟上IProjectpackage com.peng.ddq;/** * @author kungfu~peng * @data 2017年11月24日 * @description */public int原创 2018-01-11 11:14:27 · 553 阅读 · 0 评论 -
设计模式之禅【组合模式】
真刀实枪之组合模式从公司的人事架构谈起吧公司的组织架构从上图中可以分析出:有分支的节点(树枝节点)无分支的节点(叶子节点)根节点(无父节点)有了树状结构图,再看看类图长啥样吧!这个类图是有缺陷的,等会儿继续修改,现在先看下这个不成熟类图的代码IRootpackage com.原创 2018-01-11 11:15:41 · 755 阅读 · 0 评论 -
设计模式之禅【观察者模式】
真刀实枪之观察者模式韩非子身边的卧底到底是谁派来的“知己知彼,百战不殆;不知彼知己,一胜一负;不知己不知彼,每战必殆”那么怎样才能做到知彼呢,这个在世界都比较常见,就是安插间谍李斯和韩非子都是荀子的弟子,李斯是师兄,韩非子是师弟,若干年后,李斯成为最强诸侯秦国的上尉,致力于统一全国,于是安插间谍到各个国家,韩非子这么重量级人物,当然身边少不了间谍,韩非子做的李斯原创 2018-01-11 11:16:36 · 475 阅读 · 0 评论 -
设计模式之禅【门面模式】
真刀实枪之门面模式从投递信件说起写过纸质信件没,如果你是00后,那机会应该很少,不过没关系,先来看看步骤写信的内容写信封把信放到信封投递到信箱中进行邮递看下该过程的类图趁热打铁,代码跟上ILetterProcesspackage com.peng.mm;/** * @author ku原创 2018-01-11 11:17:23 · 408 阅读 · 0 评论 -
设计模式之禅【备忘录模式】
真刀实枪之备忘录模式如此追女孩 ^_^【不过“后悔药”更贴切】尼古拉斯·凯奇主演的《Next》--《遇见未来》,尼古拉斯·凯奇饰演一个可以遇见并且能扭转未来的人,其中有一个情节很是让人心动:男女主角见面的那段情节“Cris Johnson坐在咖啡吧前台,看着离自己近在咫尺的Callie Ferris,计划着怎么认识这个命中注定的女人,看Cris Johnson如何利用自原创 2018-01-11 11:18:21 · 574 阅读 · 0 评论 -
设计模式之禅【建造者模式】
真刀实枪之建造者模式变化是永恒的--悍马车的私人订制汽车的启动,停止,喇叭声音,引擎声音都有客户控制先看类图吧,简单设计下:顺序如何由sequence来决定代码CarModel抽象类package com.peng.builder;import java.util.ArrayList;/** * @author kung原创 2018-01-10 10:46:00 · 417 阅读 · 0 评论 -
设计模式之禅【代理模式】
真刀实枪之代理模式我是游戏至尊“最近几年王者荣耀的热度飙升,自己打时可以体验到其中的升级乐趣,但是时间过得很快啊!自己不想打,找代练,好主意!”作为一名程序员,先将打游戏这段过程系统化一下代码IGamePlayerpackage com.peng.game;/** * @author kungfu~peng * @data原创 2018-01-10 10:47:17 · 459 阅读 · 0 评论 -
设计模式之禅【原型模式】
真刀实枪之原型模式先发个个性化电子账单来引出今天的主角个性化服务一般银行都会要求个性化服务,添加一些个人信息在提示信息之前。递送的成功率邮件的递送成功率有一定的要求,由于大批的发送邮件,会被接收的邮件服务器认为是垃圾邮件,因此要在头信息增加一些伪数据,以规避被反垃圾邮件引擎认为是垃圾邮件电子账单系统账单分析账单生成原创 2018-01-10 10:49:23 · 454 阅读 · 0 评论 -
设计模式之禅【中介者模式】
真刀实枪之中介者模式进销存管理,你管理的头大吗?你可能会说,这有啥难的,先来幅模块示意图从这个示意图可以看出,三个模块是相互依赖的,其中:销售情况:销售部门要反馈情况,畅销就多采购库存情况:即使是畅销产品,库存多的话也不用去采购那好,先根据现况做出类图代码Purchase(采购管理)原创 2018-01-10 10:51:43 · 419 阅读 · 0 评论 -
设计模式之禅【命令模式】
真刀实枪之命令模式项目经理也难当--难做的事千千万,想办法去解决~.~带过项目的经理有这样的感受:很多项目,行政命令一压下来,那就一条道--做完做好!从项目合作进入需求组(Requirement Group,RG)美工组(Page Group,PG)代码组(来个好听的名字:逻辑实现组)(Code Group,CG)类图展示过程原创 2018-01-10 10:52:40 · 371 阅读 · 0 评论 -
设计模式之禅【抽象工厂模式】
真刀实枪之工厂方法模式从女娲造人开始说起东汉《风俗通》记录了这样一则神话故事:“开天辟地,未有人民,女娲抟黄土做人。”开天辟地之初,大地上并没有生物,只有苍茫大地,纯粹而洁净的自然环境,寂静而又寂寞,于是女娲决定创造一个新物种,即人类来增加世界的繁荣。别忘了女娲是神仙,没有办不到的事情,造人的过程是这样的:首先,女娲采集黄土捏成人的形状,然后放到八卦炉中烧制,最后放到大原创 2018-01-10 10:16:51 · 453 阅读 · 0 评论 -
设计模式之禅【模板方法模式】
真刀实枪之工厂方法模式从女娲造人开始说起东汉《风俗通》记录了这样一则神话故事:“开天辟地,未有人民,女娲抟黄土做人。”开天辟地之初,大地上并没有生物,只有苍茫大地,纯粹而洁净的自然环境,寂静而又寂寞,于是女娲决定创造一个新物种,即人类来增加世界的繁荣。别忘了女娲是神仙,没有办不到的事情,造人的过程是这样的:首先,女娲采集黄土捏成人的形状,然后放到八卦炉中烧制,最后放到大原创 2018-01-10 10:19:12 · 381 阅读 · 0 评论 -
设计模式之禅【工厂模式】
真刀实枪之工厂方法模式从女娲造人开始说起东汉《风俗通》记录了这样一则神话故事:“开天辟地,未有人民,女娲抟黄土做人。”开天辟地之初,大地上并没有生物,只有苍茫大地,纯粹而洁净的自然环境,寂静而又寂寞,于是女娲决定创造一个新物种,即人类来增加世界的繁荣。别忘了女娲是神仙,没有办不到的事情,造人的过程是这样的:首先,女娲采集黄土捏成人的形状,然后放到八卦炉中烧制,最后放到大原创 2018-01-10 10:14:09 · 450 阅读 · 0 评论 -
设计模式之禅【单例模式】
真刀实枪之单例模式我是皇帝我独苗--从皇帝的故事说起“自从秦始皇确立了皇帝这个位置之后,同一时期就只允许一个皇帝坐在这个位置。这种情况下臣民也好处理,大家叩拜,谈论的时候只要提及皇帝,每个人都知道他是谁,而不用加上特定的称呼。”反应到设计领域就是,要求一个对象对他的依赖都是相同的,因为只有一个对象,大家对他的脾气和习性非常了解,建立健壮稳固的关系。想法原创 2018-01-10 10:10:30 · 402 阅读 · 0 评论 -
设计模式之禅【六大设计原则】
大旗不挥,谁敢冲锋--6大设计原则单一职责原则“你设计的类符合SRP原则吗?”--保准对方立马“萎缩”掉,而且还一脸崇拜的看着你,心想“老大确实英明!”。你可能会问了SRP是什么,别着急,往下看:之前常用的模型--RBAC(Role-Based Access Control)基于角色的访问控制,通过分配和取消角色来完成用户权限的授予和取消,使动作主体与资源的行为原创 2018-01-10 10:03:29 · 1361 阅读 · 0 评论