随笔分类 -  框架设计:设计模式

摘要:一、引言在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严重,然而享元模式可以解决这个问题,下面具体看看享元模式是如何去解决这个问题的。二、享元模式的详细介... 阅读全文
posted @ 2016-01-12 23:46 Cat Qi 阅读(483) 评论(0) 推荐(0) 编辑
摘要:一、引言 在上一篇文章介绍到可以使用状态者模式和观察者模式来解决中介者模式存在的问题,在本文中将首先通过一个银行账户的例子来解释状态者模式,通过这个例子使大家可以对状态者模式有一个清楚的认识,接着,再使用状态者模式来解决上一篇文章中提出的问题。二、状态者模式的介绍 每个对象都有其对应的状态,而每... 阅读全文
posted @ 2015-08-31 22:22 Cat Qi 阅读(777) 评论(0) 推荐(0) 编辑
摘要:一、引言 在现实生活中,有很多中介者模式的身影,例如QQ游戏平台,聊天室、QQ群和短信平台,这些都是中介者模式在现实生活中的应用,下面就具体分享下我对中介者模式的理解。二、 中介者模式的介绍2.1 中介者模式的定义 从生活中的例子可以看出,不论是QQ游戏还是QQ群,它们都是充当一个中间平台,QQ... 阅读全文
posted @ 2015-08-31 22:21 Cat Qi 阅读(2037) 评论(0) 推荐(0) 编辑
摘要:一、引言 在现实生活中,处处可见观察者模式,例如,微信中的订阅号,订阅博客和QQ微博中关注好友,这些都属于观察者模式的应用。在这一章将分享我对观察者模式的理解,废话不多说了,直接进入今天的主题。二、 观察者模式的介绍2.1 观察者模式的定义 从生活中的例子可以看出,只要对订阅号进行关注的客户端,... 阅读全文
posted @ 2015-07-24 11:25 Cat Qi 阅读(342) 评论(0) 推荐(0) 编辑
摘要:一、引言在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ”门面“模式。下面就具体介绍下外观模式。二、外观模式的详细介绍2.1 定义外观模式提供了一个统一的接口... 阅读全文
posted @ 2015-07-02 15:58 Cat Qi 阅读(1194) 评论(0) 推荐(0) 编辑
摘要:一、引言提到模板,大家肯定不免想到生活中的“简历模板”、“论文模板”、“Word中模版文件”等,在现实生活中,模板的概念就是——有一个规定的格式,然后每个人都可以根据自己的需求或情况去更新它,例如简历模板,下载下来的简历模板的格式都是相同的,然而我们下载下来简历模板之后我们可以根据自己的情况填充不同... 阅读全文
posted @ 2015-07-02 10:14 Cat Qi 阅读(245) 评论(0) 推荐(0) 编辑
摘要:原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 简单说来原型模式就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。 原型模式UML图: 原型模式的基本代码结构:namespace ConsoleApplicati... 阅读全文
posted @ 2015-05-18 15:38 Cat Qi 阅读(457) 评论(0) 推荐(0) 编辑
摘要:设计模式的实现并不难,对着例子来,很快就能敲出来。但是,在什么情况下用什么设计模式,这是个问题,最近总结了一下:设计模式用法单例保证类的实例只有一个简单工厂根据参数创建对应具体子类策略算法、规则的封装、传入具体调用,调用具体算法装饰者动态对一个对象进行增属性、调用方法等操作,链式操作,随意组合。... 阅读全文
posted @ 2015-05-18 11:17 Cat Qi 阅读(471) 评论(0) 推荐(0) 编辑
摘要:工厂方法模式(Factory Method),定义了一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到子类。 工厂方法模式在实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还存在,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。... 阅读全文
posted @ 2015-03-26 22:20 Cat Qi 阅读(2066) 评论(0) 推荐(0) 编辑
摘要:代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式的优点: (1)、职责清晰,真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的... 阅读全文
posted @ 2015-03-26 22:17 Cat Qi 阅读(353) 评论(0) 推荐(0) 编辑
摘要:装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 装饰者模式隐含的是通过一条条装饰链去实现具体对象,每一条装饰链都始于一个Componet对象,每个装饰者对象后面紧跟着另一个装饰者对象,而对象链终于ConcreteComponet... 阅读全文
posted @ 2015-03-26 22:16 Cat Qi 阅读(382) 评论(0) 推荐(0) 编辑
摘要:策略模式(Strategy):它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。 策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之... 阅读全文
posted @ 2015-03-26 22:15 Cat Qi 阅读(3097) 评论(0) 推荐(1) 编辑
摘要:简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 使用场景:工厂类负责创建的对象比较少;客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;由于简单工厂很容易违反高内聚责任分配原则,因此一般... 阅读全文
posted @ 2015-03-26 22:14 Cat Qi 阅读(405) 评论(0) 推荐(0) 编辑
摘要:单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。一、单例模式 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的... 阅读全文
posted @ 2015-03-26 22:13 Cat Qi 阅读(416) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示