随笔分类 - 【框架设计】---设计模式

摘要:这个读书笔记好早就写好了,一直想整理成文档,由于没有时间一直耽搁了,最近比较闲,时间较为充裕所以就整理了。目前提供两种文档格式的下载:chm和pdf。 下载地址如下: 设计模式读书笔记.pdf:http://pan.baidu.com/s/1o6if... 阅读全文
posted @ 2014-04-21 21:09 chenssy 阅读(4455) 评论(14) 推荐(15) 编辑
摘要:从七月份开始一直到九月底才看完设计模式,在这个过程中我不敢说我已经掌握了那本书里面的内容,或者说1/5,没能力说也没有资格说。但是结果不重要,重要的是这个过程我的收获!主要包括如下几个方面: 1、认识了这么多设计模式。刚刚接触java没多久就在学长那里听过设计模式的大名,但是由于能力有限,一直不敢触碰。而今有幸将其都认识了。 2、开始有设计的理论了。在接触设计模式之前没有怎么想过设计方面东东,看到问题就立马动手解决,没有想到怎么样来设计更好,如何来是这块更加优化、漂亮。 3、开始考虑系统的可扩展性了。 4、在遇到问题后开始想有那个设计模式会适用这个场景。 5、对面向对象有了更深一步的了解。 . 阅读全文
posted @ 2013-10-08 19:12 chenssy 阅读(52365) 评论(67) 推荐(308) 编辑
摘要:在我们的生活中处处充斥着“中介者”,比如你租房、买房、出国留学、找工作、旅游等等可能都需要那些中介者的帮助,同时我们也深受其害,高昂的中介费,虚假信息。在地球上最大的中介者就是联合国了,它主要用来维护国际和平与安全、解决国际间经济、社会、文化和人道主义性质的问题。国与国之间的关系异常复杂,会因为各种各样的利益关系来结成盟友或者敌人,熟话说没有永远的朋友,也没有永远的敌人,只有永远的利益... 阅读全文
posted @ 2013-10-01 15:16 chenssy 阅读(11534) 评论(7) 推荐(12) 编辑
摘要:为人处事是一门大学问,察言观色、听懂弦外之音都是非常重要的,老板跟你说“XX你最近表现平平啊,还得要多努力”,如果你不当回事,平常对待,可能下次就是“XX,恩,你人还是不错,平常工作也很努力,但是我想这份工作可能不是很适合你…..”。又比如你老大说“XX,你最近表现不错,工作积极性很高啊!继续保持啊!”,你高兴乐呵着心想是不是老板要给我加工资了,可能你等到花都谢了也没有,得到的可能会是... 阅读全文
posted @ 2013-09-29 22:10 chenssy 阅读(10289) 评论(4) 推荐(0) 编辑
摘要:个人比较喜欢玩单机游戏,什么仙剑、古剑、鬼泣、使命召唤、三国无双等等一系列的游戏我都玩过(现在期待凡人修仙传),对于这些游戏除了剧情好、场面大、爽快之外,还可以随时存档,等到下次想玩了又可以从刚开始的位置玩起(貌似现在的游戏都有)。这里的所谓存档就是将当前的状态记录下来,打开存档的时候只需要将这些状态读取出来即可。还有我们小时候期待长大,长大了希望回到小时候。18岁想长到28岁,到了2... 阅读全文
posted @ 2013-09-26 21:12 chenssy 阅读(6184) 评论(3) 推荐(3) 编辑
摘要:生老病死乃常态,是我们每个人都逃脱不了的,所以进医院就是一件再平常不过的事情了。在医院看病,你首先的挂号,然后找到主治医生,医生呢?先给你稍微检查下,然后就是各种处方单(什么验血、CD、B超等等,太坑了。。。。),再然后就给你一个处方单要你去拿药。拿药我们可以分为两步走,第一步,我们要去交钱,划价人员会根据你的处方单上面的药进行划价,交钱。第二步,去药房拿药,药房工作者同样根据你的处方... 阅读全文
posted @ 2013-09-25 21:23 chenssy 阅读(5840) 评论(3) 推荐(3) 编辑
摘要:去年参加校招要到长沙来,这个对于我来说不是特别喜欢(但又必须的来,谁叫咱不是985、211的娃呢),但是对于某些人来说就是福音了。大四还有课,而且学校抓的比较严,所以对于那些想翘课的人来说这个是最好不过的理由了—去参加校招了。所以咱学校规定所以去参加校招的必须要请假,且必须要有相关人员的签字,三天一下,辅导员签字、三到七天系主任签字,一个星期以上院长签字,更多?校长(不知道能不能找到校... 阅读全文
posted @ 2013-09-21 21:34 chenssy 阅读(3841) 评论(7) 推荐(7) 编辑
摘要:面向对象可以非常方便的解决一些扩展性的问题,但是在这个过程中系统务必会产生一些类或者对象,如果系统中存在对象的个数过多时,将会导致系统的性能下降。对于这样的问题解决最简单直接的办法就是减少系统中对象的个数。 享元模式提供了一种解决方案,使用共享技术实现相同或者相似对象的重用。也就是说实现相同或者相似对象的代码共享。 一、 模式定义 所谓享元模式就是运行共... 阅读全文
posted @ 2013-09-20 16:44 chenssy 阅读(13075) 评论(2) 推荐(5) 编辑
摘要:在开始学java的时候老师讲到继承的时候,总是喜欢用一个例子来讲解,那就是画图,这里有一个画笔,可以画正方形、长方形、圆形(这个大家都知道怎么做吧,我就不解释了)。但是现在我们需要给这些形状进行上色,这里有三种颜色:白色、灰色、黑色。这里我们可以画出3*3=9中图形:白色正方形、白色长方形、白色圆形。。。。。。到这里了我们几乎到知道了这里存在两种解决方案: 方案一:为每种形... 阅读全文
posted @ 2013-09-12 21:28 chenssy 阅读(39271) 评论(11) 推荐(17) 编辑
摘要:以前听过这样一句话:“程序员的最高境界就是Ctrl+C、Ctrl+V”,我们先不论这句话的对错,就论这个过程,这个过程我们都知道无非就是复制一个对象,然后将其不断地粘贴。这样的过程我们可以将其称之为“克隆”。再如我们应聘的时候打印了那么多的简历。 克隆我们都清楚,就是用一个物体复制若干个一模一样物体。同样,在面向对象系统中,我们同样可以利用克隆技术来克隆出若干个一模... 阅读全文
posted @ 2013-09-10 20:50 chenssy 阅读(21052) 评论(0) 推荐(12) 编辑
摘要:流水作业大家应该都清楚吧!在流水作业中,我们可以将一些复杂的东西给构建出来,例如汽车。我们都知道汽车内部构件比较复杂,由很多部件组成,例如车轮、车门、发动机、方向盘等等,对于我们用户来说我们并不需要知道这个汽车是如何构建出来的,它的各个部件是如何组装,我们只需要知道一点:这是一辆完整的汽车。同样KFC也是这样的,在KFC中我们吃套餐也不需要知道这个套餐是怎样做出来的,我们只需要在店里面... 阅读全文
posted @ 2013-09-07 21:17 chenssy 阅读(5670) 评论(0) 推荐(3) 编辑
摘要:在我们实际生活中代理情况无处不在!你在淘宝上面买东西,你使用支付宝平台支付,卖家请物流公司发货、你请朋友帮你拿包裹,在这个过程汇总支付宝、物流公司、你朋友都扮演者“第三者”的角色在帮你完成物品的购买,这里的第三者我们可以将其称之为代理者。 所谓代理就通过引用一个新的对象来实现对真实对象的操作或者将新的对象当做真实对象的一个替身,这种实现的机制就是代理模式,通过引用代理对象... 阅读全文
posted @ 2013-09-05 21:51 chenssy 阅读(3713) 评论(2) 推荐(5) 编辑
摘要:我们对于这个图片肯定会非常熟悉,这两幅图片我们都可以看做是一个文件结构,对于这样的结构我们称之为树形结构。在数据结构中我们了解到可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。我们可以将这颗树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象即可是容器对象也可以是叶子对象。但是由于容器对象和叶子对象在功能上面的区别,使得我们在使... 阅读全文
posted @ 2013-09-03 20:51 chenssy 阅读(21152) 评论(3) 推荐(8) 编辑
摘要:首先我们需要知道策略模式与状态模式是如此的相似,就犹如一对双胞胎一样。只不过状态模式是通过改变对象内部的状态来帮助对象控制自己的行为,而策略模式则是围绕可以互换的算法来创建成功业务的。两者都可用于解决同一个问题:带有大量的if..else…等条件判断语句来进行选择的(小弟初学,不知这样理解是否有误??有误望指出…)。 在我们的生活中我们可以通过很多种不同的方式来完成一件事情,这里的每一种方式都可以称作为一种策略。我们可以根据环境、条件等因素的不同选择不同的策略来完成这件事情。比如说出去旅游,我们可以选择坐火车、坐飞机、坐大巴、骑自行车,甚至徒步等等方式。如果想舒适快速... 阅读全文
posted @ 2013-09-01 23:02 chenssy 阅读(7135) 评论(5) 推荐(10) 编辑
摘要:在介绍状态模式之前,我们先来看这样一个实例:你公司力排万难终于获得某个酒店的系统开发项目,并且最终落到了你的头上。下图是他们系统的主要工作(够简单)。 当你第一眼看到这个系统的时候你就看出来了这是一个状态图,每个框框都代表了房间的状态,箭头表示房间状态的转换。分析如下:房间有三个状态:空闲、已预订、已入住,状态与状态之间可以根据客户的动作来进行转换。定义每个状态的值。... 阅读全文
posted @ 2013-08-25 00:10 chenssy 阅读(6240) 评论(7) 推荐(3) 编辑
摘要:你项目组接到一个项目:对电视机的电视频道、电影和收音机菜单进行统一管理,建立一个统一的菜单管理界面,能够看到所有的电视界面、电影界面和收音机频道。你有三个手下:小李子、小杏子、小安子,他们分别就每个模块做开发工作,看他们都做了哪些工作。 这是主菜单JavaBean,用于显示每个模块的菜单。 public class MenuItem { private St... 阅读全文
posted @ 2013-08-10 18:56 chenssy 阅读(6280) 评论(0) 推荐(5) 编辑
摘要:首先我们先来看两个例子:冲咖啡和泡茶。冲咖啡和泡茶的基本流程如下: 所以用代码来创建如下: 咖啡:Caffee.java 1 public class Coffee { 2 void prepareRecipe(){ 3 boilWater(); 4 brewCoffeeGrinds(); 5 pourInCup(); 6 addSugarAndMilk(); 7 } 8 9 void boilWater(){10 System.out.println("Bo... 阅读全文
posted @ 2013-07-30 22:58 chenssy 阅读(2900) 评论(4) 推荐(4) 编辑
摘要:前面介绍的适配器模式(设计模式读书笔记-----适配器模式)讲的是如何将一个接口转换成客户所需要的另一个接口,它的目的在于解决接口的不兼容性问题。现在这里有这样一个模式,它的目的在于如何简化接口,它可以将多个类的复杂的一切隐藏在背后,只显露出一个干净美观的外观。 晚上睡觉之前,你总是喜欢看电视,在你进入卧室的时候你需要完成以下几个步骤:打开电灯、打开空调、放心银幕(假如你家有)、打开电视通过这么些繁琐的步骤后你终于可以看电视了,但是你要睡觉了呢?又要去进行繁琐的关闭动作。这里你就需要一个外观模式了,通过实现一个更加合理的接口外观类将这些动作都包装起来,实现一键“看电视”、一键“关... 阅读全文
posted @ 2013-07-23 21:35 chenssy 阅读(3022) 评论(2) 推荐(6) 编辑
摘要:假如我们又这样软件系统,我们希望它能够和一个新的库搭配使用,但是这个库所提供的接口与我们的软件系统不兼容,我们不想改变现有代码就能解决这个问题,怎么办?这个时候我们就需要将这个新的库接口转换成我们所需要的接口,这就是适配器模式设计动机。 一、模式定义 何谓适配器模式?适配器模式就是将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 在适配器模式中,我们可以定义一个包装类,包装不兼容接口的对象,这个包装类就是适配器,它所包装的对象就是适配者。 适配器提供给客户需要的接口,适配器的实现就是将客户的请求转换成对适配者的相应的接口的引用。也就... 阅读全文
posted @ 2013-07-21 23:25 chenssy 阅读(4649) 评论(5) 推荐(10) 编辑
摘要:在开发过程中,我可能会需要向某些对象发送一些请求,但是我们不知请求的具体接收者是谁,也不知道被请求的操作是那个,我们只知道在程序运行中指定具体的请求接收者即可。打个比方,电视遥控器,我们只需要知道按那个按钮能够打开电视、关闭电视和换台即可,并不需要知道是怎么开电视、关电视和换台的。对于这种情况,我们可以采用命令模式来进行设计。 一、基本定义 命令模式将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式支持可撤销的操作。 命令模式可以对发送者额接受者完全解耦,发送者也接收者之间并没有直接的联系,发送者只需要知道如何发送请求,不需要关心请求是如何完... 阅读全文
posted @ 2013-07-20 10:55 chenssy 阅读(3474) 评论(2) 推荐(5) 编辑