随笔分类 -  设计模式

摘要:提纲 问题的产生 观察者模式主要内容,定义 模式UML结构 使用场景 用户自定义观察者模式通用模式代码(java) 模式分类(推模型和拉模型) 模式实现(推模型) 模式实现(拉模型) 推拉两种模式的比较 优缺点 模式总结 JAVA提供的对观察者模式的支持 怎样使用JAVA对观察者模式的支持 Ruby 阅读全文
posted @ 2017-09-18 21:36 Jessica程序猿 阅读(423) 评论(0) 推荐(0)
摘要:1.概述在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序。但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关。例子1:银行业务办理流程在银行办理业务时,一般都包含几个基本固定步骤:取号排队->办理具体业务->对银行工作人... 阅读全文
posted @ 2015-05-07 23:21 Jessica程序猿 阅读(284) 评论(0) 推荐(0)
摘要:1.概述一些面向对象的编程方式,提供了一种构建对象间复杂网络互连的能力。当对象们连接在一起时,它们就可以相互提供服务和信息。通常来说,当某个对象的状态发生改变时,你仍然需要对象之间能互相通信。但是出于各种原因,你也许并不愿意因为代码环境的改变而对代码做大的修改。也许,你只想根据你的具体应用环境而改进... 阅读全文
posted @ 2015-05-07 23:08 Jessica程序猿 阅读(746) 评论(0) 推荐(0)
摘要:问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中,会专门有一个日志模块,负责写日志,由于在系统的任何地方,我们都有可能要调用日志模块中的函数,进行写日志。那么,如何构造一个日志模块的实例呢?难道,每次new一个日志模块实例,写完日志,再delet... 阅读全文
posted @ 2015-05-07 22:37 Jessica程序猿 阅读(3629) 评论(0) 推荐(0)
摘要:1. 概述 若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。 通过继承一个现有类可以使得子类在拥有自身方法的... 阅读全文
posted @ 2015-05-07 21:03 Jessica程序猿 阅读(555) 评论(0) 推荐(0)
摘要:1.概述 在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,... 阅读全文
posted @ 2015-05-07 17:22 Jessica程序猿 阅读(876) 评论(0) 推荐(0)
摘要:设计模式一 工厂模式Factory 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生... 阅读全文
posted @ 2015-05-07 15:50 Jessica程序猿 阅读(522) 评论(0) 推荐(0)
摘要:1. 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?例子1:设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具... 阅读全文
posted @ 2015-05-07 09:05 Jessica程序猿 阅读(629) 评论(0) 推荐(0)
摘要:1. 概述:接口的改变,是一个需要程序员们必须(虽然很不情愿)接受和处理的普遍问题。程序提供者们修改他们的代码;系统库被修正;各种程序语言以及相关库的发展和进化。 例子1:iphone4,你即可以使用UBS接口连接电脑来充电,假如只有iphone没有电脑,怎么办呢?苹果提供了iphone电源适配... 阅读全文
posted @ 2015-05-06 21:44 Jessica程序猿 阅读(3785) 评论(0) 推荐(0)
摘要:1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。例子1:一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电视机的启动和关闭。该电源总开关可以同时控制上述所有电器设备,电源总开关即为该系统... 阅读全文
posted @ 2015-05-06 20:56 Jessica程序猿 阅读(5447) 评论(0) 推荐(0)
摘要:设计模式概论1. 设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软... 阅读全文
posted @ 2015-05-06 20:54 Jessica程序猿 阅读(316) 评论(0) 推荐(0)
摘要:内容目录:从一个示例开始类之间的关系时序图附录:《图说设计模式》看懂UML类图和时序图这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系; 能看懂类图中各个类之间的线条、箭头代表什么意思后,也就足够应对 日常的工作和交流; 同时,我们应该能将类图所表达的含义和最终的代码对应起来; 有... 阅读全文
posted @ 2015-05-06 20:53 Jessica程序猿 阅读(2074) 评论(0) 推荐(0)