设计模式
文章平均质量分 70
学习设计模式过程的学习笔记
慕火
爱我所爱,行我所行。
展开
-
结构型模式之桥接模式
1、 意图桥接模式是一种结构型设计模式,可将 一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,从而能在开发时分别使用。2、问题假如你有一个几何形状类,从它能扩展除两个子类:圆形和方形。你希望对这样的类层次结构进行扩展以使其包含颜色,所以要创建名为红色Red和蓝色的形状子类。但是,由于你已有两个子类,所有总共序要创建四个类才能覆盖所有组合,例如蓝色圆形和红色方形。3、解决方案问题的根本原因使我们试图在两个独立的维度——形状和颜色——上扩展形状类。这在处理类继承时是很常见的问题。桥原创 2021-05-16 10:49:31 · 147 阅读 · 0 评论 -
结构型模式之适配器模式
1、适配器模式适配器模式是一种结构型设计模式,它能使接口不兼容的对象能够相互合作。 适配器可担任两个对象间的封装器,它会接收对于一个对象的调用,并将其转换为另一个对象可识别的格式和接口。2、适配器模式适合应用场景1)当你希望使用某个类,但是其接口与其他代码不兼容时,可以使用适配器类。2)如果你需要复用这样的一个类,它们处于同一个继承体系,并且他们又有了额外的一些共同方法,但是这些共同的方法不是所有在这一个继承体系中的子类所具有的共性。3、实现方式1)确保至少有两个类的接口不兼容:一个无法修原创 2021-05-09 10:03:51 · 186 阅读 · 0 评论 -
创建型模式之建造者模式
假如有一个盖房的项目需求要求盖房子有个三个步骤,打桩,砌墙,封顶房子有各种各样的,比如普通房,高楼,别墅解决方案①传统方式将盖房的方法统一封装到一个父类,用子类(普通房,高楼,别墅)去继承盖房盖房统一父类House.javapublic abstract class House{ //通用的打桩方法 void abstract buildBasic(); //通用的砌墙方法 void abstract buildWalls(); //通用的封顶方法原创 2021-03-28 11:46:14 · 103 阅读 · 0 评论 -
创建型模式之抽象工厂模式
????问题假设你正在开发一款家具商店模拟器。代码中包含这些类:1.产品:椅子,沙发,咖啡桌2.系列产品的不同变体。例如,你可以使用现代,维多利亚,装修风艺术等风格生成椅子,沙发和咖啡桌。你需要设法单独生成每件家具对象,这样才能确保其风格一致。如果顾客收到的家具风格不一样,他们可不会开心。此外,你也不希望在添加新产品或心风格时修改已有代码。家具供应商对于产品目录的更新非常频繁,你不会想在每次更新时都去修改核心代码。????解决方案首先,抽象工厂模式建议为系列中的每件产品明确声明接口(例如椅子,原创 2021-03-21 13:55:50 · 142 阅读 · 0 评论 -
创建型模式之工厂模式
1.简介工厂方法模式原理是在父类提供一个创建对象的方法,允许子类决定实例化对象的类型。2.工厂方法结构1)产品(Product)将会对接口进行声明。对于所有由创建者及其子类构建的对象,这些接口都是通用的。2)具体产品(Concrete Products)是具体实现接口的产品。3)创建者(Creator)类声明返回产品对象的工厂方法。该方法的返回对象类型必须与产品接口相匹配。4)具体创建者(Concrete Creators)将会重写基础工厂方法,使其返回不同类型的产品。注意,并不一定每次调用原创 2021-02-21 15:24:22 · 107 阅读 · 0 评论 -
创建型模式之原型模式
概述:将一个对象作为原型,通过对其进行复制而克隆除多个和原型类型类似的新实例。原型对象那个可以生成自身的完成副本,因为相同类的对象可以相互访问对方的私有成员变量。1.优缺点1).优点:Java自带的原型模式基于内存二进制流的复制,在性能上比直接new一个对象更加优良。可以使用深克隆方式保存对象的状态,使用原型模式将对象复制一份,并将其状态保存起来,简化了创建对象的过程,以便在需要的时候使用,可辅助实现撤销操作。2).缺点:克隆包含循环引用的复杂对象可能会非常麻烦。2.应用场景如果你原创 2021-02-16 08:35:23 · 133 阅读 · 1 评论 -
创建型模式之单例模式
1.创建型模式分为:1)单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。2)原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。3)工厂方法(FactoryMethod)模式:定义一个用于创建产品的接口,由子类决定生产什么产品。4)抽象工厂(AbstractFactory)模式:提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品。5)建造者(Builder)模式:将一个原创 2021-02-07 13:41:06 · 124 阅读 · 1 评论 -
设计模式概述及UML的类图
1.设计模式概述1)简介设计模式是面向对象设计中反复出现的问题的解决方案。这个术语的含义还存有争议。算法不是设计模式,因为算法致力于解决问题而非设计问 题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者 和其他设计者掌握。设计模式还为软件重构提供了目标。2)历史肯特·贝克和沃德·坎宁安在1987年利用克里斯托佛·亚历山大在建筑设计领域里的思想开发了设计模式并把此思想应用在Smalltalk中的图形用户接 口的生原创 2020-12-18 21:12:39 · 290 阅读 · 1 评论