随笔分类 -  设计模式

深入浅出单实例Singleton设计模式
摘要:单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可能也是面试中问得最多的一个设计模式了。这个设计模式主要目的是想在整个系统中只能出现一个类的实例。这样做当然是有必然的,比如你的软件的全局配置信息,或者是一个Factory,或是一个主控类,等等。你希望这个类在整个系统中只 阅读全文

posted @ 2018-03-03 22:37 AlanTu 阅读(190) 评论(0) 推荐(0) 编辑

图说设计模式
摘要:详见:http://design-patterns.readthedocs.io/zh_CN/latest/index.html 软件模式是将模式的一般概念应用于软件开发领域,即软件开发的 总体指导思路或参照样板。软件模式并非仅限于设计模式,还包括 架构模式、分析模式和过程模式等,实际上,在软件生存 阅读全文

posted @ 2018-02-23 15:51 AlanTu 阅读(1212) 评论(0) 推荐(0) 编辑

设计模式概述
摘要:1. 设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如 阅读全文

posted @ 2018-02-23 15:45 AlanTu 阅读(701) 评论(0) 推荐(0) 编辑

Facade - 外观模式
摘要:1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。例子1:一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电视机的启动和关闭。该电源总开关可以同时控制上述所有电器设备,电源总开关即为该系统的 阅读全文

posted @ 2018-02-23 15:44 AlanTu 阅读(155) 评论(0) 推荐(0) 编辑

Adapter - 适配器模式
摘要:1. 概述: 接口的改变,是一个需要程序员们必须(虽然很不情愿)接受和处理的普遍问题。程序提供者们修改他们的代码;系统库被修正;各种程序语言以及相关库的发展和进化。 例子1:iphone4,你即可以使用UBS接口连接电脑来充电,假如只有iphone没有电脑,怎么办呢?苹果提供了iphone电源适配器 阅读全文

posted @ 2018-02-23 15:43 AlanTu 阅读(328) 评论(0) 推荐(0) 编辑

Bridge - 桥接模式
摘要:1. 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度? 例子1:设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具 阅读全文

posted @ 2018-02-23 15:40 AlanTu 阅读(308) 评论(0) 推荐(0) 编辑

Factory - 工厂模式
摘要:在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之 阅读全文

posted @ 2018-02-23 15:38 AlanTu 阅读(232) 评论(0) 推荐(0) 编辑

Singleton - 单例模式和Double-Checked Locking - 双重检查锁定模式
摘要:问题描述 现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中,会专门有一个日志模块,负责写日志,由于在系统的任何地方,我们都有可能要调用日志模块中的函数,进行写日志。那么,如何构造一个日志模块的实例呢?难道,每次new一个日志模块实例,写完日志,再dele 阅读全文

posted @ 2018-02-23 15:32 AlanTu 阅读(225) 评论(0) 推荐(0) 编辑

Decorator - 装饰模式
摘要:1. 概述 若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。 通过继承一个现有类可以使得子类在拥有自身方法的同时还 阅读全文

posted @ 2018-02-23 15:32 AlanTu 阅读(218) 评论(0) 推荐(0) 编辑

Template Method - 模板方法模式
摘要:1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序。但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关。例子1:银行业务办理流程在银行办理业务时,一般都包含几个基本固定步骤:取号排队->办理具体业务->对银行工作 阅读全文

posted @ 2018-02-23 15:31 AlanTu 阅读(593) 评论(0) 推荐(0) 编辑

设计模式 - 观察者模式
摘要:提纲 问题的产生 观察者模式主要内容,定义 模式UML结构 使用场景 用户自定义观察者模式通用模式代码(java) 模式分类(推模型和拉模型) 模式实现(推模型) 模式实现(拉模型) 推拉两种模式的比较 优缺点 模式总结 JAVA提供的对观察者模式的支持 怎样使用JAVA对观察者模式的支持 Ruby 阅读全文

posted @ 2018-02-23 15:28 AlanTu 阅读(283) 评论(0) 推荐(0) 编辑

深入浅出单实例Singleton设计模式
摘要:单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可 能也是面试中问得最多的一个设计模式了。这个设计模式主要目的是想在整个系统中只能出现一个类的实例。这样做当然是有必然的,比如你的软件的全局配置信 息,或者是一个Factory,或是一个主控类,等等。你希望这个类在整个系统 阅读全文

posted @ 2018-02-13 15:41 AlanTu 阅读(227) 评论(0) 推荐(0) 编辑

导航