随笔分类 -  设计模式

摘要:前言开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统代理不必要的复杂性,这时候可以在客户单和目标对象直接添加一层中间层,让代理对象代替目标对象,然后客户端只访问代理对象,由代理对象去帮我们去请求目标对象并返回结果给客户端,即代理模式代理... 阅读全文
posted @ 2015-12-14 09:22 细数青春 阅读(188) 评论(0) 推荐(0)
摘要:前言软件开发过程中,客户端经常与复杂的系统内部的子系统进行耦合,从而导致客户单程序随着子系统的变化而变化,为了将他们解耦而产生是外观模式,也称作门面模式外观模式介绍外观模式提供了统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用。即创建一个统一的类用来保证子系统中一个... 阅读全文
posted @ 2015-12-14 09:21 细数青春 阅读(511) 评论(0) 推荐(0)
摘要:前言在软件开发中,经常对一类对象添加不同的功能,如果使用继承来实现的话就则有定义多个类,比如手机类,子类可能会有stickerphone(贴膜手机类),accessoriesPhone(挂件手机类)等,这会导致很多的子类问题,于是我们可以使用装饰者模式来动态给一个对象添加额外的职责,使用类的任意组合... 阅读全文
posted @ 2015-12-02 10:00 细数青春 阅读(320) 评论(0) 推荐(0)
摘要:前言这里以电视遥控器为例子引出桥接模式,首先每个牌子的电视都有一个遥控器,可以设计吧遥控器作为一个抽象类,抽象类中提供遥控器的所有实现,其他具体电视品牌的遥控器都继承这个抽象类这样的实现使得每个不同型号的电视都有自己的遥控器实现,这样的设计对于电视剧品牌的改变可以很好的应对,只要添加一个派生类就可以... 阅读全文
posted @ 2015-12-02 09:59 细数青春 阅读(436) 评论(0) 推荐(0)
摘要:前言在生活中有很多观察者模式的例子,比如微信中的订阅号,订阅博客,qq微博中关注好友,都属于观察者模式观察者模式介绍观察者模式定义了一种一对多的依赖关系,让多个观察者欧诺个时监听某一个主题对象,这个主题对象在发生变化时,会通知所有观察者对象,使他们能够自动更新自己的行为1)实际例子下面将会一步步的实... 阅读全文
posted @ 2015-11-20 11:13 细数青春 阅读(217) 评论(0) 推荐(0)
摘要:前言在软件系统中,当创建一个类的实例很复杂时,并且还需要创建多个这样的实例时,如果使用关键字new去创建的话,会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中分配了多个一样的实例对象,然后采用工厂模式开创建系统的话,会随着产品类的不断增加导致子类的数量不断增多,反正增加了系统复杂度所以使用... 阅读全文
posted @ 2015-11-18 17:30 细数青春 阅读(243) 评论(0) 推荐(0)
摘要:前言需要创建一个复杂的对象,这个复杂的对象有其他各部分子对象通过一定的步骤组合而成。例如:电脑是一个复杂的对象,由cpu,主板,硬盘,显卡,机箱组成,如果此时让采购员一台台的去组装是不可能的。建造者模式可以解决这个问题,我们可以吧电脑的各个组件的组成过程封装到一个建造者类对象中,建造者只要负责返还给... 阅读全文
posted @ 2015-11-18 17:29 细数青春 阅读(252) 评论(0) 推荐(0)
摘要:前言简单工厂模式使代码有了初步的优化,但是简单工厂模式系统难以扩展,一旦添加新产品就不得不修改方法,这样会让简单工厂的实现逻辑过于复杂,下面要讲的工厂模式解决这一问题工厂方法模式介绍工厂方法模式把具体产品的创建推迟到子类中,工厂类不在负责所有产品的创建,而只是给出具体工厂实现的接口,这样工厂方法模式... 阅读全文
posted @ 2015-11-17 10:16 细数青春 阅读(311) 评论(0) 推荐(0)
摘要:前言:工厂方法模式是为了克服简单工厂模式的确定而设计的,简单工厂模式的工厂类会随着产品类的增加而增加额外的代码(case),而工厂方法模式每个具体工厂类只完成单个实例的创建,所以它具有很好的扩展性;但是现实生活中,一个工厂只生成一种产品显然是不可能的,如果使用工厂方法模式那么我们的代码中就会出现很多... 阅读全文
posted @ 2015-11-17 10:16 细数青春 阅读(320) 评论(0) 推荐(0)
摘要:前言简单工厂模式是一种比较容易理解的设计模式简单工厂模式介绍在设计模式中,简单工厂模式可以理解为负责生产对象的一个类,当使用new 关键字创建一个对象时,此时该类就依赖于这个对象,也就是他们间的耦合度高,当需要变换时,需要修改此类的源码。使用简单工厂的模式解决这一问题---封装改变,既然要封装改变,... 阅读全文
posted @ 2015-11-17 10:15 细数青春 阅读(219) 评论(0) 推荐(0)
摘要:前言在软件开发过程中,当我们需要重复使用某个对象时就需要‘new’这个关键字重复去创造,这样就需要多次去申请内存空间,可能会出现内存越来越多的情况,这样的问题是很严重的。看看下面的享元模式是怎么解决的。享元模式介绍重复创建对象的问题,可以这样解决:既然是同一个对象,能不能只创建一个对象,下次需要创建... 阅读全文
posted @ 2015-11-13 12:25 细数青春 阅读(196) 评论(0) 推荐(0)
摘要:前言备忘录模式与命令模式优点相似,不同的是,命令模式保存的是发起人的具体命令(命令对应的是行为),而备忘录模式是保存的发起人的状态(状态对应数据库结构,如属性)备忘录模式介绍1)定义备忘录模式就是对某个类的状态进行保存,等需要恢复的时候从备忘录中进行恢复,如备份电话簿,备份操作系统,备份数据库具体定... 阅读全文
posted @ 2015-11-13 11:46 细数青春 阅读(162) 评论(0) 推荐(0)
摘要:前言开发中经常会遇到处理简单对象和复合对象的情况,例如对操作系统中目录的处理,目录可以包含单个的文件,也可以包括文件夹,文件夹又是有文件组成的,由于简单对象和复合对象在功能上区别导致在操作过程中必须区分简单对象和复合对象,这样就会导致客户端带来不必要的麻烦,而作为客户,他们希望能够始终一致的对待简单... 阅读全文
posted @ 2015-11-13 11:44 细数青春
摘要:单例模式主要特点不是根据客户程序调用生成一个新的实例,而是控制某个类型的实例数量唯一一个。即单例模式就是保证在整个应用程式的生命周期中,在任何时刻,被知道的类只有一个实例,并为客户程序提供一个获取该实例的全景访问点一.经典模式using System;using System.Collections... 阅读全文
posted @ 2014-08-13 11:11 细数青春 阅读(224) 评论(0) 推荐(0)
摘要:1.为什么用Lock及关键知识当我们使用线程的时候,效率最高的方式当然是异步,即个个线程同时运行,其间互不依赖和等待。当不同的线程都需要访问某个资源的时候,就需要同步机制了,也就是说当对同一个资源进行读写的时候,我们要使该资源在同一时刻只能被同一个线程操作,以确保每个操作都是有效即时的,也即保证其操... 阅读全文
posted @ 2014-08-09 10:14 细数青春 阅读(661) 评论(0) 推荐(0)