设计模式
文章平均质量分 80
ToughMind_
We’re here to put a dent in the universe.
展开
-
深入浅出设计模式(八):10.合成模式(Composite) 11.享元模式(Flyweight)
10.合成模式(Composite)合成模式又叫树形模式,就是把部分和整体的关系用树形结构表示,使得客户端对单个对象和组合对象的使用具有一致性。哪里会使用到合成模式比如将一个文件从C盘复制到D盘,也可以将一个文件夹从C盘复制到D盘中,不管是哪种方式,我们的操作都是一样的,而且文件夹下的所有文件都会同时复制过去。合成模式的实现原理合成模式在薪酬系统中的实际应用代码比较简单,就不在此贴出,全部放在项目中原创 2016-01-18 23:48:54 · 653 阅读 · 0 评论 -
深入浅出设计模式(十三):21.观察者模式(Observer)22.命令模式(Command)23.备忘录模式(Memento)
21.观察者模式(Observer)每个月当银行发放工资时,都会有短信自动通知员工,员工就相当于观察者,账户就是被观察者,当账户余额有变动时,会自动通知观察者,这就是观察者模式的实际应用。哪里会使用到观察者模式比如银行的手机提醒功能,当账户余额变动时,只要将手机号注册到银行系统中,就会自动通知到手机上。目前网上商城比较流行,当有新的货物或货物价格有变化时,只要将电子邮件注册到网站上,就可以自动收到新原创 2016-02-24 15:01:55 · 2340 阅读 · 0 评论 -
深入浅出设计模式(七):9.代理模式
代理模式(Proxy)我们买房子办理贷款时可以自己到银行办理,但是手续很多,也可以找相应的代理公司,这样我们什么都不用管。代理模式就是给一个对象提供一个代理对象,由这个代理对象控制对原对象的引用代理模式的实现原理动态代理的实现比如现有操作计算薪资、计算所得税、权限控制等,现系统要求给每个方法都使用日志记录,则每个操作就都要有一个日志记录的代理类,太多了,此时就可通过动态代理,代理类要都实现Invoc原创 2016-01-15 15:35:02 · 984 阅读 · 1 评论 -
深入浅出设计模式(六):8.门面模式
8.门面模式(Facade)到蛋糕店买蛋糕,不需要知道蛋糕怎么制作,蛋糕房就是蛋糕的门面,屏蔽了制作蛋糕的细节,门面模式又称为外观模式。实际开发中,屏蔽了子模块内部的实现细节,只是将客户端需要的接口提供给客户。哪里会用到门面模式网上商城有银行支付功能,而银行肯定不能将后台的数据库直接开放给网上商城使用,不同银行提供相应的支付接口,这样的支付接口对于银行而言就是一个门面。薪资系统开发中,计算每个月原创 2016-01-13 17:03:28 · 1838 阅读 · 0 评论 -
深入浅出设计模式(五):7.适配器模式
适配器模式原创 2016-01-12 18:55:12 · 1538 阅读 · 0 评论 -
深入浅出设计模式(四):6.创建者模式
6.创建者模式(Builder)在抽象工厂模式中,一个具体的工厂类负责创建一系列相互关联的对象,但此时工厂类的职责并不单一,如果组装变得复杂,则工厂类将会变得很庞大,不利于维护。创建者模式就是将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示,而且客户端不用知道对象的构建细节。创建者模式的实现原理创建者模式在薪酬模块的实际应用在薪酬模块中,需要对员工的基本工资、奖金、保险、个人原创 2016-01-12 16:40:41 · 619 阅读 · 0 评论 -
深入浅出设计模式(十二):18.职责链模式(Chain of Responsibility)19.状态模式(State)20.解释器模式(Interpreter)
18.职责链模式(Chain of Responsibility)职责链模式在程序应用中十分广泛,经常使用在公文审批、出差报支等地方,职责链模式的作用就是将对象各自处理的职责分开,虽然职责很多,但最终只有一个职责进行处理。哪里会使用到职责链模式比如在玩纸牌,当一个人出牌后,接下来将按照顺序进行询问下一个人是否需要出牌压住上一个人出的牌,如果询问一圈后,无人出牌,则该人继续出牌,然后按照同样规则继续询原创 2016-01-22 17:46:44 · 701 阅读 · 0 评论 -
深入浅出设计模式(三):4.抽象工厂模式 5.原型模式
抽象工厂模式(Abstract Factory)上例中,对于中英文翻译就需要两个不同的工厂类,如果此时要增加语义的处理功能,按照工厂方法模式,则还需要增加一个对语义处理的抽象工厂类,然后再增加对中英文语义处理的两个具体的工厂类,这时就有2个抽象的工厂类,4个具体的工厂类。如果此时还需要增加语音播报功能,则还需要创建新的工厂类,这样工厂类的量就会不断增加,此时就需要使用抽象工厂模式了。原创 2015-12-21 15:10:37 · 1622 阅读 · 1 评论 -
深入浅出设计模式(十一):16.中介者模式(Mediator) 17.访问者模式(Vistor)
16.中介者模式(Mediator)中介者模式又叫调停者模式,比如说租房中介,通过中介,租房者和房东之间就建立了很好的联系,中介者模式采用的就是这个道理,用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式的相互引用。哪里会使用到中介者模式目前软件外包业务发达,很多人都在网上发布软件或项目外包的任务供软件开发人员选择,这种类型的网站就好像一个中介一样,类似还有淘宝,卖家可以在网上发布需要售原创 2016-01-22 09:33:58 · 620 阅读 · 0 评论 -
深入浅出设计模式(二):2.简单工厂模式 3.工厂方法模式
2.简单工厂模式(Simple Factory)简单工厂模式实现原理对象的 创建 和 使用 分离开,就是简单工厂模式。简单工厂模式又叫静态工厂方法模式,就是将对象产生的细节进行隐藏,客户端只负责调用即可。软件开发中,开发人员不能将代码写在同一个类中,这样类越来越大,变得难以维护,因此需要将一个类中不同的功能划分多个类来完成,这就是面向对象设计原则中类的单一职责原则,简单工厂模式就是将类的职责进行细分原创 2015-12-18 17:56:46 · 900 阅读 · 0 评论 -
深入浅出设计模式(十):15.迭代器模式(Iterator) 16.模版方法模式(TemplateMethod)
15.迭代器模式(Iterator)在软件开发中,经常需要将某一类对象放在一个集合里,或者放在容器里,这个时候通常需要对集合或容器里的对象进行访问,很明显,对集合或容器里对象的访问必须涉及遍历,这就是迭代器模式。哪里会用到迭代器模式在电子商城的网站开发中,经常会有一个产品的列表展示,经常会使用到循环进行处理,从而将产品一个一个地展示出来。在网站浏览新闻时,各种类型的新闻也是一条一条显示在界面上的,这原创 2016-01-20 18:58:38 · 711 阅读 · 0 评论 -
深入浅出设计模式(九):12.装饰模式(Decorator) 13.桥模式(Bridge)14.策略模式(Strategy)
12.装饰模式(Decorator)在程序开发中,有时候开发人员会使用继承来扩展对象的功能,用户的需求是多变的,也就造成继承会造成代码的大范围改动,其实扩展对象的功能,采用组合比继承要好很多,当用户需求变动时,只需要将对象间的组合发生变化就可以了。哪里会用到装饰模式装饰就是物品原来的功能并没有改变,只是在原来的功能上添加了一些新的功能,就好像是进行了装饰一样。其实关键是要理解装饰模式的本质,是为了扩原创 2016-01-20 15:05:40 · 630 阅读 · 0 评论 -
深入浅出设计模式(一):单例模式
注:本文参考《深入浅出设计模式》和网上资料,并对某些文字以自己的理解进行了适当的修改。个人觉得本文应作为入门学习,了解大体框架,具体的设计模式有待详细研究。原创 2015-12-17 18:09:43 · 1626 阅读 · 0 评论 -
深入浅出设计模式(十四):23种设计模式概念总结
创建型模式 5种1.单例模式(Singleton)单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。eg.数据库。连接数据库很耗时,不停地新建连接会影响性能,用单例模式,一个数据库建立完成后,可以提供给后面的所有对数据库的操作使用,保证数据库的连接在系统运行时只有一个实例存在。随着业务复杂,数据库连接池技术应运而生,原创 2016-02-25 17:47:41 · 6085 阅读 · 0 评论