现在位置: 首页 > 设计模式
2016-03-05 07:23 工业·编程 ⁄ 共 6083字 暂无评论
设计模式是软件行业广为人知的设计方案集合,讨论设计模式的过程更像是一种悟道的过程。在实际的软件项目开发过程中,它不仅可以帮助初级设计者找到解决问题的方案,也可以帮助项目团队快速达成一致消除争议,以便更好的推进项目进度和项目执行力度。 而对于依靠各种流行软件框架工作的软件工程师来说,理解设计模式就是理解手头的“锤子”,这无疑是十分重要的。   一:创建型 这些模式描述了对象的创建方式。对象从职责上...
阅读全文
2016-03-04 06:50 工业·编程 ⁄ 共 10512字 暂无评论
创建型 Object Pool Object Pool模式可以提升性能,尤其是在对象的分配、初始化成本高,使用频率高但使用时间短的情况下。对象池可以设置对象池的大小和回收时间缓存预分配的对象。 NT和Linux都有简单的预分配缓存对象的机制,也就是Lookaside Cache机制。NT的对象管理器使用延迟删除和垃圾回收机制实现真正意义上的对象池。在调用NtClose关闭对象之后,对象使用的内存空间并不马上回收,而是挂在已删除对象列表之中,并且被设...
阅读全文
2016-03-03 06:27 工业·编程 ⁄ 共 2226字 暂无评论
文章目录 1。创建型模式: 2。结构型模式 3。行为模式 4。其他模式 设计模式针对面向对象系统中重复出现的设计问题,提出了一个通用的设计方案,并予以系统化的命名和动机解释。 它描述了问题,解决方案,在什么条件下使用该解决方案极其效果。 设计模式有助于软件开发者更好更快地理解面向对象的精髓。设计出高内聚,结构良好,灵活健壮的程序。 分三种类型:1。创建型...
阅读全文
      在现在的电视机中,我们使用[后一个]和[前一个]按钮可以很方便的换台,当按下[后一个]按钮时,将切换到下一个预置的频道。想象一下在陌生的城市中的旅店中看电视。当改变频道时,重要的不是几频道,而是节目内容。如果对一个频道的节目不感兴趣,那么可以换下一个频道,而不需要知道它是几频道。         这个其实就是我们迭代器模式的精髓:提供一种方法顺...
阅读全文
我创建的这个对象比较复杂,且该对象里面的成员函数用不同的实现来表示不同的实例,换句话说就是同样的对象构建过程可以有不同的表示。比如我那天去吃过桥米线,他们有不同的套餐,套餐里包含的种类是一样的,都有一碗米线,一份凉菜,一杯饮料。但是不同的套餐里这3样又都不是全部一样的。此时我们就可以用建造者模式。 类图结构: 1.建造者(Builder)角色:给出一个抽象接口,以规范产品对象的各个组成成分的...
阅读全文
     在系统里a,b,c三个组件必须同时使用,但是a的同类 a1和a2这三种方法有共同特点但是是互斥的,b,b1,b2和c,c1,c2和a/a1/a2是一样的。就比如说创建在不同操作系统的视窗环境下都能够运行的系统时,Unix下面有unixButton和 unixText,Win下面也有winButton和winText,unixButton和unixText必须在一个系统unix里面用,而winButton和winText只能在Win下面用。但是winButton和unixButton这两种东西都是有相同...
阅读全文
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。这个其实和C++的拷贝构造函数的作用是一致的,实际上就是动态抽取当前对象运行时的状态。 类图结构:   客户(Client)角色:客户类提出创建对象的请求。 抽象原型(Prototype)角色:这是一个抽象角色,通常由一个C#接口或抽象类实现。此角色给出所有的具体原型类所需的接口。在C#中,抽象原型角色通常实现了ICloneable接口。 具体原型(Co...
阅读全文
我们PC用到的文件系统,其实就是我们数据结构里的树形结构,我们处理树中的每个节点时,其实不用考虑他是叶子节点还是根节点,因为他们的成员函数都是一样的,这个就是组合模式的精髓。他模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。 将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。...
阅读全文
  假设我们开发一个图片处理软件,里面肯定包括很多相关功能,比如说剪切,旋转,滤镜,美化等等,而我们这些功能所要处理的对象是固定的,就是我们所显示的那张图片。但是我们不能把所有的功能罗列到一个tab上,虽然这样处理方便但是不美观。这是我们可以这样子:用一个中介者类负责所有功能的初始化和具体执行,我们需要功能时直接调用中介者类即可。     中介者模式就是定义一个中介对象来封装系列对象...
阅读全文
想想我们编辑文档用的wps,文档里文字很多都是重复的,我们不可能为每一个出现的汉字都创建独立的空间,这样代价太大,最好的办法就是共享其中相同的部分,使得需要创建的对象降到最小,这个就是享元模式的核心,即运用共享技术有效地支持大量细粒度的对象。 享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State)。内蕴状态是存储在享元对象内部并且不会随环境改变而改变。因此内蕴状态并可...
阅读全文