
设计模式
文章平均质量分 68
Curry_1122
我的性格是积极上进,活泼开朗的。但是处事和工作中,我往往是冷静、稳重,能在逆境中发挥潜能。在校期间努力学习、积极参加学院的各项活动,对于学生工作有自己的认识和方法。业余的时候参加各种社会实践活动,锻炼了自己的组织协调和沟通等各方面能力。尤其是我在三星公司做销售期间,使我受益匪浅,学得到了很多东西:让我更具责任心,更能吃苦,磨练了我的意志,增强了团队意识。我的工作原则是:方法是首要条件,努力是必备条件,坚持是成功的根本条件。
展开
-
Objective C--命令模式
今天想和大家分享的是命令模式。下面还和之前一样,先给出基本的定义。 命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或纪录请求日志,以及支持可撤销的操作。 那么让我们简要的说一下命令模式的特点。它能比较容易地设计一个命令队列;在需要的情况下,可以较容易地将命令记入日志;转载 2012-08-09 10:55:34 · 921 阅读 · 0 评论 -
Objective C--迭代器模式
今天和大家分享的是迭代器模式。接触过C#或者Java的同学应该对迭代器都有所了解,想必大家对迭代器的概念已经不陌生了,下面还是给出定义和类图关系,大家体会一下就明白了。 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 那么一般在什么时候才会用迭代器模式呢?当你需要访问一个聚集对象,而且不管这些对象是什转载 2012-08-09 11:16:18 · 814 阅读 · 0 评论 -
Objective C--桥接模式
今天和大家分享的是桥接模式。在介绍桥接模式之前先和大家分享一个原则,那就是合成/聚合复用原则,具体定义是这样的: 合成/聚合复用原则(CAPP),尽量使用合成/聚合,尽量不要使用类继承。 合成(Composition,也有翻译成组合)和聚合(Aggregation)都是关联的特殊种类。聚合表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一转载 2012-08-09 11:13:18 · 827 阅读 · 0 评论 -
Objective C--简单工厂模式
前言自上一篇文章有两个礼拜的时间了,本来想余下一段时间内尽量用英文写文章,包括技术文。前两天点点网的统计数据里添加了对每个博客里文章访问量的一个排名,发现我的博客里访问最多的竟然是Objective C!说实话,有些意外,后细想来也许有很多和我一样的初学者朋友想学习这门语言,犹豫再三,本着分享知识的原则,还是用中文写吧,其他类型的文章再当练习英语,用英文来写。好啦,废话就到这里吧,接下来进转载 2012-08-09 11:10:42 · 812 阅读 · 0 评论 -
Objective C--代理模式
今天,想和大家分享一下代理模式。首先呢,我想先用一句话概括一下代理模式。 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 那么,代理模式一般都在什么情况下使用呢?大体可以分为以下四种:远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。虚拟代理,是根据需要创建开销很转载 2012-08-09 11:02:26 · 1082 阅读 · 0 评论 -
Objective C--装饰模式
今天准备和大家分享一下使用Objective C简单实现设计模式里的装饰模式。 首先,简单介绍一下装饰模式(Decorator)。 装饰模式(Decorator),动态地给一个对象添加一些额外地职责,就增加功能来说,装饰模式比生成子类更为灵活。装饰模式主要是为已有功能动态地添加更多功能的一种方式。当系统需要新功能的时候,是向旧的类中添加新的代码。这些新加的代码通常装转载 2012-08-09 11:04:21 · 798 阅读 · 0 评论 -
Objective C--解释器模式
今天和大家分享的模式是解释器模式。 首先介绍一下解释器模式适合解决哪类问题。 其实,解释器模式需要解决的问题是,如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。 就应用的例子来说,例如正则表达式就是它的一种具体应用,解释器可以为正则表示定转载 2012-08-09 10:26:05 · 691 阅读 · 0 评论 -
Objective C--享元模式
今天和大家分享的模式叫享元模式。 首先,让我们给出享元模式的定义。 享元模式(Flyweight),运用共享技术有效地支持大量细粒度的对象。 享元模式可以避免大量非常相似类的开销。在程序设计中,有时需要生成大量细粒度的类实例来表示数据。如果能发现这些实例除了几个参数外基本上都是相同的,有时就能够受大幅度地减少需要实例化的类数量。如果能把那些参数移到类实例的转载 2012-08-09 10:36:13 · 828 阅读 · 0 评论 -
Objective C--观察者模式
今天和大家分享的是观察者模式。观察者模式又叫做发布-订阅(Publish/Subscribe)模式。下面给出具体的定义。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 下面还是先给大家展示一下类关系图。 其实这个结构也还算转载 2012-08-09 09:55:51 · 1237 阅读 · 0 评论 -
Objective C--单例模式
今天想和大家一起分享的是单例模式。顾名思义,单例模式的特点就是保证一个类仅有一个实例。因为这个模式只和一个类有关,没有类与类之间的关系,所有就不给出图示了。那么还是先说一下基本的定义。单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让转载 2012-08-09 09:48:48 · 801 阅读 · 0 评论 -
谈谈对于企业级系统架构的理解
在我们刚开始学习架构的时候,首先会想到分层的概念,分层架构比较经典的是三层架构,那么,什么是三层架构呢?它包括表现层,业务层,数据访问层;而对于一个新手来说,从抽象意义上的三层架构,逻辑上就划分为三个层。这个是最基本的三层架构模式。表现层充当系统的界面呈现以及UI逻辑的角色,也就是说,UI(用户界面)属于表现层;举一个对于asp.net WebForm来说,人们喜欢转载 2012-11-28 10:54:12 · 577 阅读 · 0 评论 -
正则表达式语法
正则表达式语法一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。这里有一些可能会遇到的正则表达式示例:Visual Basic Scripting Edition VBScript 匹配/^\[ \t]*$/ "^\[转载 2013-01-23 11:17:00 · 422 阅读 · 0 评论 -
Objective C--组合模式
今天和大家分享的模式是组合模式。组合模式具体说来也不复杂。下面还是先给出定义。 组合模式(Composite),将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式的适用场合是,一般当你发现需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中地转载 2012-08-09 11:18:35 · 807 阅读 · 0 评论 -
Objective C--状态模式
今天想和大家分享的是状态模式。关于状态模式理解起来不是很难,而且这个模式主要解决的目的也很明确。好的,还是先给出定义吧。 状态模式(State),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 其实,状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判转载 2012-08-10 08:58:43 · 835 阅读 · 0 评论 -
Objective C--职责链模式
今天想和大家分享的是职责链模式。闲话先不多说,先给出一个简单的定义。 职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 职责链模式的一个很重要的特点是,当客户发出请求之后,客户端并不知道哪一个对象最终处理这个请求,转载 2012-08-09 10:53:17 · 588 阅读 · 0 评论 -
Objective C--中介者模式
今天和大家分享的模式是中介者模式。 看到这个名字,猜想很多朋友会想到中介机构。其实,中介者模式的功能就是充当了中介结构。下面还是先给出定义。 中介模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使用其耦合松散,而且可以独立地改变它们之间的交互。 下面先给出类结构图,再做简单解释。转载 2012-08-09 10:46:25 · 610 阅读 · 0 评论 -
Objective C--策略模式
今天,介绍一下策略模式。 策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用类之间的耦合。 下面我把策略模式的类层次结构图展示如下:如图所示,Strategy类层次为Context定义了一系列的可供重用的算法和行为,继承有助于析取出这些算法转载 2012-08-09 11:07:34 · 810 阅读 · 0 评论 -
Objective C--原型模式
今天和大家分享的设计模式是原型模式。首先给大家展示一下基本定义: 原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节,其实我觉得就是多了一个克隆方法而已,所以呢,看起来挺简单的一个功能竟然也是设计模式里的一种,老实说多少有些惊讶哦!转载 2012-08-09 10:12:57 · 669 阅读 · 0 评论 -
Objective C--模板方法模式
今天和大家分享的是模板方法模式。这个模式的核心思想就是通过把不变的行为搬移到超类,去除子类中的重复代码来体现它的优势。其实,模板方法模式就是提供了一个很好的代码复用平台。 首先,还是先简单看一下定义: 模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 下面和转载 2012-08-09 10:11:15 · 787 阅读 · 0 评论 -
Objective C--访问者模式
今天和大家分享的是访问者模式。 为了方便向大家展示,先给出简短的定义。 访问者模式(Visitor),表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 紧接着,给出其类结构图。 访问者模式适用于数据结构相对稳定的系统,它把数据结构和作用于结构上的操作之间的耦合解脱开转载 2012-08-09 10:28:03 · 794 阅读 · 0 评论 -
Objective C--工厂方法模式
今天和大家分享的设计模式是工厂方法模式。 首先给出工厂方法模式的一个简单的定义:工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 早在第一次和大家分享的关于简单工厂模式中就有提到过一次关于“工厂类”模式。为了帮助大家能够回忆一下简单工厂模式,在这里提一下简单工厂转载 2012-08-09 10:23:29 · 1723 阅读 · 0 评论 -
Objective C--外观模式
今天和大家分享的是外观模式。这个模式也不难,我猜想很多人都不经意间用过。好吧,先让我们看看他是如何定义的。 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义 一个高层接口,这个接口使得这一子系统更加容易使用。 下面给大家展示一下类的结构图,想必大家一看就明白了: 其实这个模式中,没有类与类之间的继承关系,只是进行转载 2012-08-09 10:06:39 · 809 阅读 · 0 评论 -
Objective C--建造者模式
今天和大家一起分享的是建造者模式。 如果你需要将一个复杂对象的构建于它的表示分离,使得同样的构建过程可以创建不同的表示的意图时,那我们就需要这个模式,建造者模式又叫生成器模式。建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。如果我们用了建造者模式,那么用户就只需要指定需要建造的类型就可以得到它们,而具体建造的过程和细节转载 2012-08-09 10:03:16 · 933 阅读 · 0 评论 -
Objective C--适配器模式
今天和大家分享的是适配器模式。适配器模式很简单,想必很多同学可能已经用过。好的,还是先给出简短的定义吧。 适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式主要解决了什么问题呢? 答:系统的数据和行为都正确,但接口不符时,我们应该考虑适转载 2012-08-10 09:03:58 · 798 阅读 · 0 评论 -
Objective C--备忘录模式
今天和大家分享的模式是备忘录模式。顾名思义,备忘录模式的初衷就是为了返回上一个状态而设计的。从名字看起来一目了然,好吧,还是老样子,先给出定义。 备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 定义看起来搞的很专业,其实就是保存上一个状态,以便日后恢复用。好比是转载 2012-08-10 09:03:01 · 696 阅读 · 0 评论 -
Objective C--抽象工厂模式
今天和大家分享的一个模式叫抽象工厂模式。呃,这个模式第一眼看上去还是有点儿小复杂。不过一开始,不准备直接把原生的类结构图呈现出来,而是先从一个简单的数据库访问的例子开始。这个例子的场景是公司根据使用不同数据库为基准对部门和人员进行整合,最终目的是为了降低对不同类型数据库对不同部门以及使用人员三者之间的耦合。 好的,还是先向大家展示一下抽象工厂模式的定义,什么是抽象工厂模式呢?转载 2012-08-10 09:01:25 · 1061 阅读 · 0 评论