设计模式
王小稚
求学之道贵在坚持!
展开
-
简单工厂模式
一、什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例,通常都具有同样的父类二、模式中包含的角色及其职责 1.工厂角色(Creator)角色 简单工厂模式的核心,他负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。2.抽象角色(Product)角色 简单工厂模式所创建的所有对象的父类,原创 2016-11-28 18:13:21 · 198 阅读 · 0 评论 -
享元模式
一、什么是享元模式? 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。 二、享元模式的角色和职责 1、抽象享元角色: 所有具体享元类的父类,规定一些实现的公共接口。 2、原创 2016-12-06 19:59:04 · 175 阅读 · 0 评论 -
观察者模式
一、什么是观察者模式? Observer模式是行为模式的一种,在此种模式中,一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实时事件处理系统。 Observer模式提供给关联对象一种同步通信的手段,使某个对象与 依赖它的其他对象之间保持状态同步。 二、观察模式的角色和职责: 抽象主题角色原创 2016-12-04 14:12:44 · 263 阅读 · 0 评论 -
策略模式
一、什么是策略模式? 策略模式是行为模式之一,它对一系列算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口,对所有算法加以封装和实现,而对于具体的算法交由客户端决定。该算法主要用于处理算法之间的切换。 二、策略模式的角色和职责 Strategy: 策略(算法)抽象 。 ConcreteStrategy: 各种策略(算法)的具体实现。Context: 策略的外部封装类,或者叫原创 2016-12-04 10:18:20 · 308 阅读 · 0 评论 -
装饰模式
一、什么是装饰模式? 装饰模式,是面向对象编程领域中,一种动态地往一个类中添加新的行为的设计模式。就功能而言,修饰模式相比生成子类更为灵活,这样可以给某个对象而不是整个类添加一些功能。 二、 装饰模式中的角色和职责 抽象组件角色: 一个抽象接口,被装饰类和装饰类的父接口具体组件角色: 为抽象组件的实现类。抽象装饰角色: 包含一个组件的引用,并定义了与抽象组件一致的接口。 具体装饰角色: 为抽象装饰原创 2016-12-04 00:22:13 · 198 阅读 · 0 评论 -
建造者模式
一、什么是建造者模式? 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。 二、适用场景: 1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。2、当构造过程必须允许被构造的对象有不同的表示时。 三、角色 在这样的设计模式中,有以下几个角色: 1 builder:为创建一个产品对象的各个部件指定抽象接口。原创 2016-12-02 20:01:51 · 140 阅读 · 0 评论 -
原型模式
一、什么是原型模式? 原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。 二、应用场景 1、在创建对象的时候,我们不只是希望被创建的对象继承其基类的基本结构,还希望继承原型对象的数据。2、希望对目标对象的修改不影响既有的原型对象(深度克隆的时候可以互不影响)。3、隐藏克隆操作的细节。很多时候对原创 2016-12-01 19:13:05 · 158 阅读 · 0 评论 -
单例模式
一、什么是单例模式? 单例模式,也叫单子模式,是一种对象创建型模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。二、为什么要使用单例模式? 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了原创 2016-11-30 21:22:37 · 168 阅读 · 0 评论 -
抽象工厂模式
一、什么是抽象工厂模式? 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。 二、产品族和产品等级结构三、模式中包含的角色及其职责 1、抽象工厂角色 抽象工厂模式的核心,包含对多个产品结构的声明,任何工厂类都必须实现这个接口。 2、具体工厂角色原创 2016-11-29 18:27:47 · 187 阅读 · 0 评论 -
工厂方法模式
一、什么是工厂方法模式? 工厂方法模式与简单工厂模式一样,同样属于类的创建型模式,又被称为多态工厂模式。 意义:定义一个创建产品对象的工厂接口,将实际创建工作,推迟的子类当中。核心工厂类,不再负责产品的创建,使得核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是,使得工厂方法模式,可以使系统在不修改具体工厂角色的情况下,引入新产品。 二、模式中包含的角色及其原创 2016-11-29 16:24:19 · 225 阅读 · 0 评论 -
代理模式
一、什么是代理模式? 代理模式(Proxy Pattern):即一个类别可以作为其它东西的接口。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 二、代理模式的角色和职责 subject: 真实主题与代理主题的共同接口。 RealSubject:定义了代理角色所代表的真实对象。 Proxy:代理角色内部包含有对真实对象的引用,所以它可以操作真原创 2016-12-06 22:31:36 · 150 阅读 · 0 评论