随笔分类 -  设计模式

摘要:1、概述单例模式:确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。 2、结构与实现单例模式是结构最简单的设计模式,它只包含一个类,即单例类。单例模式的目的是保证一个类有且仅有一个实例,并提供一个访问它的全局访问点。单例模式在实现过程中,需要注意以下3点:(1)、单例类构造函数的可见性 阅读全文
posted @ 2020-08-01 17:47 算盘 阅读(138) 评论(0) 推荐(0) 编辑
摘要:1、概述原型模式:使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。 2、结构建造者模式包含以下3个角色(1)Prototype(抽象原型类):它是声明克隆方法的接口,是所有具体原型类的公共父类,它可以是抽象类也可以是接口,甚至可以是具体实现类。(2)ConcreteProtot 阅读全文
posted @ 2020-04-02 21:58 算盘 阅读(117) 评论(0) 推荐(0) 编辑
摘要:1、概述建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 2、结构建造者模式包含以下4个角色(1)Builder(抽象建造者):它为创建一个产品(Product)对象的各个部件指定抽象接口,在该接口中一般声明两类方法,一类方法是BuildPartX(),它们用于 阅读全文
posted @ 2020-03-12 20:50 算盘 阅读(101) 评论(0) 推荐(0) 编辑
摘要:1、产品等级结构和产品族为了更好地理解抽象工厂模式,先引入以下两个概念(1)产品等级结构:产品等级结构即产品的继承结构,例如一个抽象类是电视机,其子类包括海尔电视机、TCL电视机、海信电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品登记结构,抽象电视机是父类,而具体品牌的电视机是其子类。(2 阅读全文
posted @ 2019-10-03 13:55 算盘 阅读(219) 评论(0) 推荐(0) 编辑
摘要:1、工厂方法模式概述 在工厂方法模式中,不再提供一个统一的工厂类来创建所有的产品对象,而是针对不同的产品提供不同的工厂,系统提供了一个与产品等级结构对应的工厂等级结构。 工厂方法模式的定义如下 工厂方法模式:定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟 阅读全文
posted @ 2019-09-21 11:04 算盘 阅读(224) 评论(0) 推荐(0) 编辑
摘要:1、简单工厂模式概述 作为最简单的设计模式之一,简单工厂模式的设计思想和实现过程都比较简单,其基本实现流程如下: 首先将需要创建的各种不同产品对象的相关代码封装到不同的类中,这些类称为具体产品类,而将它们公共的代码进行抽象和提取后封装在一个抽象产品类中,每一个具体产品类都是抽象产品类的子类; 然后提 阅读全文
posted @ 2019-09-14 11:01 算盘 阅读(137) 评论(0) 推荐(0) 编辑
摘要:1、单一职责原则定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。单一职责原则是实现高内聚、低耦合的指导方针,是最简单却最难运用的原则,需要设计人员发现类的不同职责并将其分离 2、开闭原则定义:软件实体应当对扩展开放,对修改关闭。指软件实体应尽量在不修改原有代码的情况下进行扩展。 阅读全文
posted @ 2019-07-16 20:51 算盘 阅读(115) 评论(0) 推荐(0) 编辑
摘要:1、Builder模式主要用于“分步骤构建一个复杂的对象”。在这其中“分步骤”是一个稳定的算法,而复杂对象的各个部分则经常变化。2、变化点在哪里,封装哪里——Builder模式主要在于应对“复杂对象各个部分”的频繁需求变动。其缺点在于难以应对“分步骤构建算法”的需求变动。3、Abstract Factory模式解决“系统对象”的需求变化,Builder模式解决“对象部分”的需求变化。Builder模式通常和Composite模式组合使用。 阅读全文
posted @ 2013-12-10 22:00 算盘 阅读(202) 评论(0) 推荐(0) 编辑
摘要:1、如果没有应对“多系列对象构建”的需求变化,则没有必要使用Abstract Factory模式。这时候使用简单的静态工厂完全可以。2、“系列对象”指的是这些对象之间有相互依赖、或作用的关系3、Abstract Factory模式主要在于应对“新系列”的需求变动。其缺点在于难以应对“新对象”的需求变动。4、Abstract Factory模式经常和Factory Method模式共同组合来应对“对象创建”的需求变化。 阅读全文
posted @ 2013-12-08 15:06 算盘 阅读(192) 评论(0) 推荐(0) 编辑
摘要:1、Singleton模式中的实例构造器可以设置为protected以允许子类派生。2、Singleton模式一般不要支持ICIoneable接口,因为这可能会导致多个对象实例,与Singleton模式的初衷违背。3、Singleton模式一般不要支持序列号,因为这也有可能导致多个对象实例,同样与Singleton模式的初衷违背。4、Singleton模式只考虑到了对象创建的管理,没有考虑对象销毁的管理。就支持垃圾回收的平台和对象开销来讲,我们一般没有必要对其销毁进行特殊的管理。5、不能应对多线程环境:在对现场环境下,使用Singleton模式仍然有可能得到Singleton类的多个实例对象。 阅读全文
posted @ 2013-12-07 22:13 算盘 阅读(276) 评论(0) 推荐(0) 编辑
摘要:从目的来看:创建型(Creational)模式:负责对象创建。结构型(Structural)模式:处理类与对象间的组合。行为型(Behavioral)模式:类与对象交互中的职责分配。从范围来看:类模式处理类与子类的静态关系。对象模式处理对象间的动态关系。 阅读全文
posted @ 2013-12-07 21:51 算盘 阅读(161) 评论(0) 推荐(0) 编辑
摘要:1、设计模式比框架更抽象:框架能够用代码表示,而设计模式只有其实例才能表示为代码。框架的威力在于它们能够使用程序设计语言写出来,它们不仅能被学习,也能被直接执行和复用。2、设计模式是比框架更小的体系结构元素:一个典型的框架包括的多个设计模式,而反之绝非如此。3、框架比设计模式更加特例化:框架总是针对一个特定的应用领域。一个图形编辑器框架可能被用于一个工厂模式,但它不会被错认为是一个模拟框架。 阅读全文
posted @ 2013-07-22 16:30 算盘 阅读(307) 评论(0) 推荐(0) 编辑
摘要:设计模式的四个基本要素:1、模式名称(pattern name) 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。2、问题(problem) 描述了应该在合适使用模式。它解决了设计问题和问题存在的前后因果,它可能描述了特定的设计问题,也可能描述了导致不灵活设计的类或对象结构。3、解决方案(solution) 描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。4、效果(consequences) 描述了模式应用的效果及使用模式应权衡的问题。 阅读全文
posted @ 2013-07-19 21:48 算盘 阅读(1589) 评论(0) 推荐(0) 编辑

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