现在位置: 首页 > 设计模式
1.概述 我们都知道,创建型模式一般是用来创建一个新的对象,然后我们使用这个对象完成一些对象的操作,我们通过原型模式可以快速的创建一个对象而不需要提供专门的new()操作就可以快速完成对象的创建,这无疑是一种非常有效的方式,快速的创建一个新的对象。 例子1:孙悟空拔下一嘬猴毛,轻轻一吹就会变出好多的孙悟空来。 例子2:寄个快递 下面是一个邮寄快递的场景: “给我寄个快递。”顾客说。 “寄往什么地方?寄给……?”你问...
阅读全文
1. 概述 在软件开发的过程中,当遇到一个“复杂的对象”的创建工作,该对象由一定各个部分的子对象用一定的算法构成,由于需求的变化,复杂对象的各个部分经常面临剧烈的变化,但将它们组合在一起的算法相对稳定。 例子1:买肯德基 典型的儿童餐包括一个主食,一个辅食,一杯饮料和一个玩具(例如汉堡、炸鸡、可乐和玩具车)。这些在不同的儿童餐中可以是不同的,但是组合成儿童餐的过程是相同的。 客户端:顾客,想去买一套套餐...
阅读全文
   在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部大机器中的...
阅读全文
2019-02-01 11:33 工业·编程 ⁄ 共 7171字 暂无评论
1. 设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。 模式的经典定义:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方...
阅读全文
2018-10-07 11:05 工业·编程 ⁄ 共 3164字 暂无评论
单例是什么?单例是一种特殊的类,用于确保只有一个对象,同时提供一种全局访问这个对象的方法。最近在工作中体验了一把5分钟将一个类改造成单例,感觉还是蛮不错的,所以我决定写一篇文章,跟大家交流技术和经验。 单例的原理是利用C++中的静态成员变量和静态成员函数,同时禁用构造函数的方法,达到只有一个对象实例的目的。 具体来说,设计一个单例的要点如下: (1)类的静态成员变量是该类的指针。 (2)类的静态成员函数...
阅读全文
2018-03-11 22:33 工业·编程 ⁄ 共 1497字 暂无评论
Reactor模式是编写高性能网络服务器的必备技术之一,它具有如下的优点: 响应快,不必为单个同步时间所阻塞,虽然 Reactor 本身依然是同步的; 编程相对简单,可以最大程度的避免复杂的多线程及同步问题,并且避免了多线程/ 进程的切换开销; 可扩展性,可以方便的通过增加 Reactor 实例个数来充分利用 CPU 资源; 可复用性, reactor 框架本身与具体事件处理逻辑无关,具有很高的复用性 下图描述了Reactor模式的框架,主要包...
阅读全文
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。创建型...
阅读全文
      在现在的电视机中,我们使用[后一个]和[前一个]按钮可以很方便的换台,当按下[后一个]按钮时,将切换到下一个预置的频道。想象一下在陌生的城市中的旅店中看电视。当改变频道时,重要的不是几频道,而是节目内容。如果对一个频道的节目不感兴趣,那么可以换下一个频道,而不需要知道它是几频道。         这个其实就是我们迭代器模式的精髓:提供一种方法顺...
阅读全文