我工作的那点事--学习《设计模式》实例应用(Command模式)
好长时间没有学习设计模式了,主要是最近一直在忙德国的一个需求,现在终于可以休息下了,不过下周又要开始新的需求了。唉,不断的项目,不停的工作。 现在闲下来 回头看看设计模式,发现我们的工作模式,其实可以用Command的模式实现的,我们都是按boss的Command办事的,呵呵。 [@more@]1.下面先讲讲我们的工作模式吧:首先,德国那边boss提出要求,然后发给德国的经理,经理按照boss的意思,形成具体的需求样式,然后将这些样式发给我们,我们按照需求完成任务。 Boss---------->manager-------àdeveloper
对以前项目的重构
今天对以前做的项目,进行了修改1.增加factory模式2.运用command模式3.运用adapter模式感觉很爽。[@more@]今天将以前项目的数据库接口进行修改,将以前的接口改为abstract 学会了在spring中配置有继承关系的bean.
我工作的那点事--学习《设计模式》实例应用(decorator模式)
今天是我们公司写周报的日子,又要回顾一下一周的工作、学习任务了,感觉这周没有做什么事情,项目刚结束,只有看看书了。 上午刚好看到Decorator这个模式,为了增强学习,就将周报这个实例和它强行绑在一起了,呵呵。[@more@] 这里还是简单的介绍一下Decorator模式吧: 定义: 在不改变原来对象的结构基础上,动态给一个对象添加一些额外的职责.如果使用子类继承的话,对于每个类的改变都要产生新类,增加了开销。现在这些功能需要由用户动态决定加入的方式和时机. 下面用实例说明一下:
我工作的那点事--学习《设计模式》实例应用(composite模式)
早上一到公司就看到德国那边的新需求,唉,没办法我们睡觉做着美梦的时候,那边正在想着让我们怎么工作充实呢。别人安排完了睡觉,我们醒来就要完成别人想的,没有办法,工作嘛,就这样了……[@more@]德国那边通常会把一个项目给我们中国这边的一个经理,然后经理安排developers开发各自的模块,然后最后自己组装各个模块,形成产品。德国那边不管我们怎么分工的,最后他们只要成品的。 这种工作模式 其实有点像builder的,各个模块分开,最后组装。不过今天这里我想用下composite模式。 1.组件:Component 一个工作组 public abstrac
我工作的那点事--学习《设计模式》实例应用(Observer模式)
今天早上一到公司,看到公司人事群发过来的邮件,通知下午开会,现在人事也比较方便的,利用现代科技,不用一个个当面通知了,记得以前小时候上学当大队长那会,假如有什么活动,还写在小黑板上呢,有时候还要一个个当面通知,非常麻烦的,大人们都担心耽误我的学习,不让参加这些活动,赫赫,现在看来完全没有这个必要的。 这段时间学习设计模式,这个方式一下子让我想起了 Observer 模式,这个模式太明显了,说白了,就是一个人有什么变化消息,自动通知其他人。[@more@]从这个例子中,可以看出 人事就是 Observable,同事就是各个Ob
我工作的那点事--学习《设计模式》实例应用(Adapter模式)
一想到这个模式,我就想到一个谚语“挂羊头卖狗肉”,哈哈,虽然比较难听,感觉还是比较准确的表达这个意思的。[@more@]Adapter模式:Adaptee(被适配者),Adaptor(适配器)和Adapter(组装前两者). 当需要将两者结合,但是又不能改变这两者时,要用到这种模式。 还是用刚才的那个谚语作解释吧,比较形象点: 羊头:Adaptee 狗肉:Adaptor 卖者:Adapter 呵呵,下面的例子相关信息和这个谚语没有必然的联系。 其实很多时候,原来的信息在传播过程中被适配了,当你得到信息时,还以为是原来的信息。
我工作的那点事--学习《设计模式》实例应用(Facade模式)
想想这个合同肯定也是个模板,公司不可能和每个人都详细谈各项,然后慢慢理列各项条例,这个也不现实,所以采用模板的形式。也就是我们设计模式里的Facade。[@more@] 昨天和公司签合同,一沓厚厚的文件,各种条例,感觉自己被束缚了,其中当然有不少对自己不利的了,但是没有办法,谁叫自己是弱势群体呢。 厚厚的文件要自己写的地方 只有三处,自己的名字,合同期,还有就是工资了,其他地方都是复印的了。 想想这个合同肯定也是个模板,公司不可能和每个人都详细谈各项,然后慢慢理列各项条例,这个也不现实,所以采用模板的形式。也就
我工作的那点事--学习《设计模式》实例应用(Singleton模式)
公司为了节约资源,对于打印机用了Singleton模式,反正所有的文件打印只能在一台机器上。[@more@]今天早上开会,要打印一堆文件(先打印出来 然后再复印(Memento)),整个公司就一个打印机,由于前面有位同事也在打印东西,没有办法只好等他用完了,心里那个急啊,公司怎么不多配几台打印机呢? 公司为了节约资源,对于打印机用了Singleton模式,反正所有的文件打印只能在一台机器上。 对于Singleton的定义如下: 主要为了在整个java工程调用中只用到一个实例,这样节约了内存的消耗(只有一台打印机),如果同时使
我工作的那点事--学习《设计模式》实例应用(Builder模式)
今天无意中在抽屉里发现以前的工资条,看见上面的各项:基本工资,车贴,饭贴,交通费,养老保险,医疗保险,失业保险,住房公积金,个税,等等……。突然想到 Builder这个模式[@more@]Builder模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们. 今天无意中在抽屉里发现以前的工资条,看见上面的各项:基本工资,车贴,饭贴,交通费,养老保险,医疗保险,失业保险,住房公积金,个税,等等……。
我工作的那点事--学习《设计模式》实例应用(Prototype模式)
这个模式比较好理解,应用也比较广泛的,说白了就是将别的东西copy一份过来,以后在复件上的修改和原件没有什么关系。[@more@]jdon对Prototype的定义是这样的: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。 我就不加多解释了,举个工作中的例子吧,这样比较形象 也容易理解: 要开会了,肯定有些比较
我工作的那点事--学习《设计模式》实例应用(factory模式)
[@more@]最近公司效率不好,不断地裁员,自己也感到有压力,要为以后做准备了,开始慢慢找工作了,于是准备简历了。 1.Person 个人信息类: public class Person{ private String name; private String sex; private int workTime; private String companyName; private String address; private String proxExperience; ……………… public Person(){ } public void setName(String name){ this.name = name; } public String getName(){ return name; } public void setSex(String sex){ this.sex = sex; }
我工作的那点事--学习《设计模式》实例应用(Mediator模式)
最近在学习设计模式,突然想到 公司在无意中扮演了Mediator角色[@more@]最近和公司因为保险上面问题 差生些矛盾,为了核实工作的是否为自己交保险,然后自己亲自和各保险部门打交道,这才发现:1.中国政府部门真的很多 2.时间效率真的很慢。原来只要把这些交给公司办理,不用管这么多。最近在学习设计模式,突然想到 公司在无意中扮演了Mediator角色,为了学以致用,将写在下面,可能这方面已经有很多人写了。1.创意员工类:public class Colleague {private Mediator mediator;public Colleague() {}/***//*** 构造函数*/public Colleagu
我工作的那点事--学习《设计模式》实例应用(strategy模式)
我已经自己亲自和有关部门调查过了(前面帖子也写过的),所以自己想了几个解决方法[@more@]今天一上班就看见那张冰冷的脸,本来想和她打招呼,结果也没了兴趣,她现在和我处在敌对状态。主要原因:她在我进公司之前,答应我给我上保险,结果现在告诉我不能替我上保险了。感觉自己被骗了,所以对她没有好言,再说我有证据在手,怕什么啊,所以坚决要和她斗争到底。我已经自己亲自和有关部门调查过了(前面帖子也写过的),所以自己想了几个解决方法,反正和公司斗,多做点准备了。1.大体的方案框架:SolveRulepublic abstract class Solve
对 Observer进行包装,遇到一些问题
主程序调用处理线程,然后线程处理完,又要调用主程序的方法进行结束,感觉处理线程调用主程序方法进行,又返回到原程序,感觉有点关联性太强,不易于模块话,所以想到利用Observer的机制,将两个关联起来,这样处理线程就不用呼叫主程序。[@more@]最近公司有个项目: 主程序调用处理线程,然后线程处理完,又要调用主程序的方法进行结束,感觉处理线程调用主程序方法进行,又返回到原程序,感觉有点关联性太强,不易于模块话,所以想到利用Observer的机制,将两个关联起来,这样处理线程就不用呼叫主程序。 由于程序大体已经完成,所
Memento模式与Prototype模式结合
我是菜鸟,刚开始学习设计模式,参考jdon的设计模式这本书,里面关于 Memento模式的例子如下(本人稍加修改)[@more@]我在另一个网站上的文章: http://www.matrix.org.cn/thread.shtml?topicId=5c99e4e2-90d7-11dc-b8c0-a384f0e97a57&forumId=20 我是菜鸟,刚开始学习设计模式,参考jdon的设计模式这本书,里面关于 Memento模式的例子如下(本人稍加修改): 1. 原始数据类 public class Originator { protected int number = 0; protected String file = null; public Originator() { } public void setNumber(in