设计模式
算盘
喜欢徒步,喜欢读书
展开
-
单例模式
1、概述单例模式:确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。2、结构与实现单例模式是结构最简单的设计模式,它只包含一个类,即单例类。单例模式的目的是保证一个类有且仅有一个实例,并提供一个访问它的全局访问点。单例模式在实现过程中,需要注意以下3点:(1)、单例类构造函数的可见性为private(2)、提供一个类型为自身的静态私有成员变量(3)、提供一个公有的静态工厂方法3、优点(1)、提供了对唯一实例的受控访问(2)、由于在系统内存中只存在一个对象,因此可以节约原创 2020-08-01 17:48:18 · 245 阅读 · 0 评论 -
原型模式
1、概述原型模式:使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。2、结构建造者模式包含以下3个角色(1)Prototype(抽象原型类):它是声明克隆方法的接口,是所有具体原型类的公共父类,它可以是抽象类也可以是接口,甚至可以是具体实现类。(2)ConcretePrototype(具体原型类):它实现在抽象原型类中声明的克隆方法,在克隆方法中返回自...原创 2020-04-02 21:56:50 · 335 阅读 · 0 评论 -
建造者模式
1、概述建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。2、结构建造者模式包含以下4个角色(1)Builder(抽象建造者):它为创建一个产品(Product)对象的各个部件指定抽象接口,在该接口中一般声明两类方法,一类方法是BuildPartX(),它们用于创建复杂对象的各个部件;另一类方法是GetResult(),它们用于返回复杂对象。Build...原创 2020-03-12 20:49:04 · 171 阅读 · 0 评论 -
抽象工厂模式
1、产品等级结构和产品族为了更好地理解抽象工厂模式,先引入以下两个概念(1)产品等级结构:产品等级结构即产品的继承结构,例如一个抽象类是电视机,其子类包括海尔电视机、TCL电视机、海信电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品登记结构,抽象电视机是父类,而具体品牌的电视机是其子类。(2)产品族:在抽象工程模式中,产品族是指由同一工厂生产的,位于不同产品等级结构中的一组产品。例如...原创 2019-10-03 13:57:09 · 200 阅读 · 0 评论 -
工厂方法模式
1、工厂方法模式概述在工厂方法模式中,不再提供一个统一的工厂类来创建所有的产品对象,而是针对不同的产品提供不同的工厂,系统提供了一个与产品等级结构对应的工厂等级结构。工厂方法模式的定义如下工厂方法模式:定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。工厂方法模式简称工厂模式(Factory Pattern),又可称为虚拟构造器模式...原创 2019-09-21 11:01:02 · 219 阅读 · 0 评论 -
简单工厂模式
1、简单工厂模式概述作为最简单的设计模式之一,简单工厂模式的设计思想和实现过程都比较简单,其基本实现流程如下:首先将需要创建的各种不同产品对象的相关代码封装到不同的类中,这些类称为具体产品类,而将它们公共的代码进行抽象和提取后封装在一个抽象产品类中,每一个具体产品类都是抽象产品类的子类;然后提供一个工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方法,该方法可以根据所传入参数的...原创 2019-09-14 11:05:39 · 159 阅读 · 0 评论 -
面向对象设计原则
1、单一职责原则定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。单一职责原则是实现高内聚、低耦合的指导方针,是最简单却最难运用的原则,需要设计人员发现类的不同职责并将其分离2、开闭原则定义:软件实体应当对扩展开放,对修改关闭。指软件实体应尽量在不修改原有代码的情况下进行扩展。3、里氏替换原则定义:所有引用基类的地方必须能透明地使用其子类的对象。里氏替...原创 2019-07-16 20:52:21 · 128 阅读 · 0 评论 -
设计模式的四个基本要素
设计模式的四个基本要素1、模式名称(pattern name) 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。2、问题(problem) 描述了应该在合适使用模式。它解决了设计问题和问题存在的前后因果,它可能描述了特定的设计问题,也可能描述了导致不灵活设计的类或对象结构。3、解决方案(solution) 描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。4、效果(...原创 2018-08-03 22:01:00 · 6174 阅读 · 0 评论 -
Builder模式的几个要点
1、Builder模式主要用于“分步骤构建一个复杂的对象”。在这其中“分步骤”是一个稳定的算法,而复杂对象的各个部分则经常变化。2、变化点在哪里,封装哪里——Builder模式主要在于应对“复杂对象各个部分”的频繁需求变动。其缺点在于难以应对“分步骤构建算法”的需求变动。3、Abstract Factory模式解决“系统对象”的需求变化,Builder模式解决“对象部分”的需求变化。Bui原创 2013-12-10 21:58:21 · 721 阅读 · 0 评论 -
Abstract Factory模式的几个要点
1、如果没有应对“多系列对象构建”的需求变化,则没有必要使用Abstract Factory模式。这时候使用简单的静态工厂完全可以。2、“系列对象”指的是这些对象之间有相互依赖、或作用的关系3、Abstract Factory模式主要在于应对“新系列”的需求变动。其缺点在于难以应对“新对象”的需求变动。4、Abstract Factory模式经常和Factory Method模式共同组原创 2013-12-08 15:05:39 · 814 阅读 · 0 评论 -
单线程Singleton模式的几个要点
1、Singleton模式中的实例构造器可以设置为protected以允许子类派生。2、Singleton模式一般不要支持ICIoneable接口,因为这可能会导致多个对象实例,与Singleton模式的初衷违背。3、Singleton模式一般不要支持序列号,因为这也有可能导致多个对象实例,同样与Singleton模式的初衷违背。4、Singleton模式只考虑到了对象创建的管理,没有原创 2013-12-07 22:11:31 · 1052 阅读 · 0 评论 -
模式和框架的区别
1、设计模式比框架更抽象:框架能够用代码表示,而设计模式只有其实例才能表示为代码。框架的威力在于它们能够使用程序设计语言写出来,它们不仅能被学习,也能被直接执行和复用。2、设计模式是比框架更小的体系结构元素:一个典型的框架包括的多个设计模式,而反之绝非如此。3、框架比设计模式更加特例化:框架总是针对一个特定的应用领域。一个图形编辑器框架可能被用于一个工厂模式,但它不会被错认为是一个模拟框架原创 2013-07-22 14:39:38 · 1902 阅读 · 0 评论 -
23种设计模式
Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。Adapter:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。Bridge:将抽象部分与它的实现部分分离,是它们都可以独立地变化。Buildr:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表原创 2013-07-19 21:45:48 · 745 阅读 · 0 评论 -
设计模式的四个基本要素
设计模式的四个基本要素:1、模式名称(pattern name) 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。2、问题(problem) 描述了应该在合适使用模式。它解决了设计问题和问题存在的前后因果,它可能描述了特定的设计问题,也可能描述了导致不灵活设计的类或对象结构。3、解决方案(solution) 描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。原创 2013-07-19 21:44:28 · 6343 阅读 · 0 评论