![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Design pattern
Snowball
这个作者很懒,什么都没留下…
展开
-
设计模式笔记6:抽象工程模式(Abstract Factory Pattern)
一、抽象工程模式的内容 抽象工厂模式又称为Kit模式,属于对象创建型模式。它提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。抽象工厂允许客户使用抽象的接口来创建一组相关的产品,而不需要知道实际产出的具体产品是什么。这样一来,客户就从具体的产品中被解耦。二、抽象工厂模式的动机 在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一原创 2012-06-08 20:04:14 · 2291 阅读 · 0 评论 -
设计模式笔记16:桥接模式(Bridge Pattern)
一、桥接模式的内容桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦合,减少了代码编写量。桥梁模式的用意【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意原创 2012-06-17 15:50:40 · 8393 阅读 · 3 评论 -
设计模式笔记8:命令模式(Command Pattern)
一、命令模式的内容命令模式将请求封装成对象,这可以让你使用不同的请求,队列,或者日志请求来参数化其他对象。命令模式也可以支持撤销操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。每一个命令都是一个操作:请求的一方发出请求要求执行一原创 2012-06-10 21:51:09 · 1587 阅读 · 0 评论 -
设计模式笔记9:适配器模式(Adapter Pattern)
一、适配器模式的内容适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。二、结构型模式可以分为类结构型模式和对象结构型模式类结构型模式关心类的组合,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系。(继承)对象结构原创 2012-06-11 16:50:21 · 1588 阅读 · 0 评论 -
设计模式笔记1:策略模式(Strategy pattern)
一、策略模式内容策略模式定义了算法簇,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。假设现在要设计一个贩卖各类书籍的电子商务网站的购物车(Shopping Cat)系统。一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定比这要复杂。比如,本网站可能对所有的教材类图书实行每本一元的折扣;对连环画类图书提供每本7%的促销折扣,而对非教材类的计算机原创 2012-06-06 22:33:50 · 1490 阅读 · 0 评论 -
设计模式笔记17:建造者模式(Builder Pattern)
一、建造者模式的内容 建造者模式封装一个产品的构造过程,并允许按步骤构造。 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。根据中文翻译的不同,建造者模式原创 2012-06-17 16:57:19 · 2051 阅读 · 0 评论 -
设计模式笔记11:模板方法设计模式(Template Method Pattern)
一、模板方法模式的内容模板模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。模板方法是一种类行为型模式。模板方法模式是基于继承的代码复用基本技术,模板方法模式的结构和用法也是面向对象设计的核心之一。在模板方法模式中,可以将相同的代码放在父类中,而将不同的方法实现放在不同的子类中。在模板方法模式中,我们需原创 2012-06-13 22:36:43 · 1570 阅读 · 0 评论 -
设计模式笔记14:状态模式(State Pattern)
一、状态模式的内容状态模式允许对象在内部改变时改变它的行为,对象看起来好像修改了它的类。其别名为状态对象(Objects for States),状态模式是一种对象行为型模式。我们在做某一些操作的时候,遇到不同状态的时候就会有不同的处理方式。为了判别这些状态,我们必然会使用大量的if else语句来做状态判断处理。而随着if else(或switch case)语句的增多,程序的可原创 2012-06-16 21:07:35 · 2167 阅读 · 1 评论 -
设计模式笔记7:单例模式(Singleton Pattern)
一、单例模式的内容单例模式确保一个类只有一个实例,并提供全局访问点。单例模式是一种对象创建型模式。单例模式又名单件模式或单态模式。二、单例模式特点某个类只能有一个实例。它必须自行创建这个实例。它必须自行向整个系统提供这个实例。三、单例模式结构图Singleton模式包含的角色只有一个,就是Singleton。Singleton拥有一个私有构造函数,确保用户无原创 2012-06-08 21:28:48 · 1323 阅读 · 0 评论 -
OO原则
设计模式的最终目标:建立弹性的设计,高复用,可以维护,可以应对变化。(设计模式可以认为是良好的OO设计经验)常用的面向对象设计原则包括7个,这些原则并不是孤立存在的,它们相互依赖,相互补充。设计原则名称设计原则简介单一职责原则(Single Responsibility Principle, SRP)类的职责要单一,不原创 2012-06-06 11:09:38 · 1050 阅读 · 0 评论 -
设计模式笔记18:职责链模式(Chain of Responsibility Pattern)
一、责任链模式的内容职责链模式(Chain of Responsibility Pattern):避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。由于英文翻译的不同,职责链模式又称为责任链模式,它是一种对象行为型模式。从击鼓传花谈起击鼓传花是一种热闹而又紧张的饮酒游戏。在酒宴上宾客依次坐定位置,原创 2012-06-17 20:49:32 · 2615 阅读 · 1 评论 -
设计模式笔记15:代理模式(Proxy Pattern)
一、代理模式的内容 代理模式为另一个对象提供一个替身或占位符以访问这个对象。 给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式的英文叫做Proxy或Surrogate,它是一种对象结构型模式。 所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象原创 2012-06-17 11:27:50 · 2275 阅读 · 0 评论 -
设计模式笔记2:观察者模式(Observer Pattern)
一、观察者模式内容观察者模式在对象之间定义了一对多的依赖,这样一来,依赖它的对象都会受到通知并自动更新。观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。一个软件系统常常要求在某一个对象的状态发生变化的时候,某些其它的对象做出相应的改变。原创 2012-06-07 19:53:46 · 1209 阅读 · 0 评论 -
设计模式笔记23:原型模式(Prototype Pattern)
一、原型模式的内容原型模式(Prototype Pattern):原型模式是一种对象创建型模式,用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模式允许一个对象再创建另外一个可定制的对象,无须知道任何创建的细节。 原型模式的基本工作原理是通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝原型自己来实现创建过程。在面向对象系统中,原创 2012-06-19 22:48:08 · 1822 阅读 · 0 评论 -
设计模式笔记3:装饰者模式(Decorator Pattern)
一、装饰者模式的内容装饰(Decorator)模式又名包装(Wrapper)模式[GOF95]。装饰者模式动态地将责任附加到对象上。想要扩展功能,装饰者提供有别于继承的另一种选择。该模式以对客户端透明的方式扩展对象的功能。利用组合在运行时动态的合成自己想要的对象,这比继承更具弹性,是继承关系的一个替代方案。二、装饰者模式的结构涉及角色(1)抽象构件角色:定义一个抽象接口原创 2012-06-07 21:45:16 · 1626 阅读 · 0 评论 -
设计模式笔记4:简单工厂模式(Simple Factory Pattern)
一、简单工厂模式的内容简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。Simple Factory模式实际上不是GoF 23个设计模式中的一员。其原创 2012-06-08 11:07:46 · 1066 阅读 · 0 评论 -
设计模式笔记5:工厂模式(Factory Method Pattern)
一、工厂模式的内容工厂方法模式也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式,定义了一个创建对象的接口,但由于子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类中。工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。原创 2012-06-08 15:01:36 · 1348 阅读 · 0 评论 -
设计模式笔记10:外观模式(Facade Pattern)
一、外观模式的内容外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更容易使用。外观模式又称为门面模式,它是一种对象结构型模式。医院的例子用一个例子进行说明,如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,原创 2012-06-12 22:23:00 · 2470 阅读 · 0 评论 -
设计模式笔记12:迭代器模式(Iterator Pattern)
一、迭代器模式的内容迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的标示。其别名为游标(Cursor)。迭代器模式是一种对象行为型模式。从定义可见,迭代器模式是为容器而生。很明显,对容器对象的访问必然涉及到遍历算法。你可以一股脑的将遍历方法塞到容器对象中去;或者根本不去提供什么遍历算法,让使用容器的人自己去实现去吧。这两种情况好像都能够解决问题。然而在前一原创 2012-06-15 08:52:49 · 3526 阅读 · 0 评论 -
设计模式笔记13:组合模式(Composite Pattern)
一、组合模式的内容组合模式允许你将对象组成树形结构来表现“整体/部分”的层次结构。组合能让客户以一致的方式处理个别对象和对象组合。组合模式(Composite Pattern):组合多个对象形成树形结构以表示“整体-部分”的结构层次。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性。组合模式又可以称为“整体-部分”(Part-Whole)模式,属于对象的结构模式原创 2012-06-15 22:19:26 · 1810 阅读 · 0 评论 -
设计模式笔记19:享元模式(Flyweight Pattern)
一、享元模式的内容享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种对象结构型模式。Flyweight在拳击比赛中指最轻量级,即"蝇量级",有些作者翻译为"羽量级"。这里使用"享元模原创 2012-06-18 21:33:20 · 3076 阅读 · 0 评论 -
设计模式笔记20:解释器模式(Interpreter Pattern)
一、解释器模式的内容解释器模式(Interpreter Pattern) :定义语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”意思是使用规定格式和语法的代码,它是一种类行为型模式。如果在系统中某一特定类型的问题发生的频率很高,此时可以考虑将这些问题的实例表述为一个语言中的句子,因此可以构建一个解释器,该解释器通过解释这些句子来解决这些问题。解释器模式描述了如原创 2012-06-18 22:02:52 · 1600 阅读 · 0 评论 -
设计模式笔记21:中介者模式(Mediator Pattern)
一、中介者模式的内容中介者模式(Mediator Pattern)定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式,它是一种对象行为型模式。在用户与用户直接聊天的设计方案中,用户对象之间存在很强的关联性,将导致系统出现如下问题:系统结构复杂:对象之间存在大量原创 2012-06-19 21:18:39 · 1397 阅读 · 0 评论 -
设计模式笔记22:备忘录模式(Memento Pattern)
一、备忘录模式的内容备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。它是一种对象行为型模式,其别名为Token。为了使软件的使用更加人性化,对于误操作,我们需要提供一种类似“后悔药”的机制,让软件系统可以回到误操作前的状态,因此需要保存用户每一次操作时系统的状态,一旦出原创 2012-06-19 21:42:54 · 1543 阅读 · 0 评论 -
设计模式笔记24:访问者模式(Visitor Pattern)
一、访问者模式的内容访问者模式(Visitor Pattern):表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式是一种对象行为型模式。对于系统中的某些对象,它们存储在同一个集合中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有所不同,访问者模式为解原创 2012-06-20 22:21:30 · 2303 阅读 · 0 评论 -
设计模式总结
一、设计模式的定义设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。二、设计模式的基本要素 设计模式一般有如下几个基本要素:模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素包括以下四个方面:模式名称 (Patte原创 2012-07-08 20:12:03 · 1782 阅读 · 0 评论