
设计模式
失去的都是人生
天道酬勤
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
(九)单例模式的几种实现方式
参考链接:https://www.runoob.com/design-pattern/singleton-pattern.html 一、懒汉式(线程不安全) 懒汉的意思就是我不生成实例,到使用时才生成第一个实例。 实现简单,但因为取唯一实例时未加锁,因此不支持多线程。 public clsaa Singleton{ private static Singleton instanc...原创 2019-10-16 23:09:37 · 309 阅读 · 0 评论 -
(八)单例模式
一、概念 一个类在程序中仅有单个对象存在,不会存在多个这个类的对象。保证一个类仅有一个实例,并提供一个访问它的全局访问点。 主要解决一个全局使用的类频繁地创建与销毁。需要自己创建自己的实例并提供给其他类使用,构造函数写为私有。 二、例子 单例模式中保存了唯一的自己这个类的静态实例,并将构造函数设为私有,对外提供了静态的getInstance函数。 public class Sing...原创 2019-10-13 23:56:30 · 192 阅读 · 0 评论 -
(七)观察者模式
一、概念 观察者模式描述对象之间一对多的关系,当一个对象发生变化时,所有的依赖它的对象(观察者对象)都会得到通知并自动更新。 二、例子 如上所示,观察者模式需要有三个类:一个Subject,即发布者,其中保存订阅者的列表和订阅内容,其中有添加观察者函数attach,和设置与获取状态函数setState和getState,以及通知函数notifyAllObservers;Observer接...原创 2019-10-13 23:38:17 · 183 阅读 · 0 评论 -
(六)装饰者模式
一、概念 装饰者模式就是对现有类的功能进行扩展,相比继承更加灵活一些。 二、例子 图中ShapeDecorator为装饰者抽象类,里面有成员shape(也可以写到RedShapeDecorator中,图中在ShapeDecorator和RedShapeDecorator中仅有一处存在shape即可,图中两处均有,个人觉得有误)、接口的函数draw、以及构造函数来对...原创 2019-10-11 23:55:47 · 168 阅读 · 0 评论 -
(五)适配器模式
一、概念 顾名思意,是用来对两个不同的接口进行适配的一种设计模式,将一个接口转换成需要的另一个接口。一般用于现有类的接口不满足需求的情况下,通过适配器继承或依赖已有对象实现想要的目标接口,解决现有运行项目的问题。 二、基本实现 如上图,在原有的基础上,要想在接口A、B之间进行转换,那么适配器只需要继承接口A,并引入变量类B,在实现的接口A函数中调用B的接口进行操作即可。看了几个其他的适配...原创 2019-10-09 22:20:26 · 129 阅读 · 0 评论 -
(四)抽象工厂模式
一、概念 抽象工厂模式就是能够生成工厂类的模式。类似于在工厂模式上再加一层封装,负责生成各种各样的工厂,可以视为建厂子的模式。 二、抽象工厂的使用 当一个工厂模式中生产的类有多重组合方式,例如工厂生产水果茶,A厂产乌龙蜜桃茶,B厂产铁观音樱桃茶,因此在抽象工厂类(作为父类)中写入茶+水果的组合,至于具体的哪种茶和哪种水果则交给由抽象工厂派生出来的A厂(子类)和B厂(子类)去搞定。 下面一段...原创 2019-10-08 22:40:35 · 203 阅读 · 0 评论 -
(三)工厂模式
国庆期间去东北参加了朋友的婚礼,时光飞逝呀,人生漫长又短暂,要给自己找点有乐趣的事情去做。 以下实践来自实验楼,链接:https://www.shiyanlou.com/courses/100/learning/?id=865, 什么是工厂模式? 工厂一般指生产特定产品的平台,那么类似的,工厂模式可以将其类比为一个工厂,指生产特定类型的对象的一种模式。工厂模式封装了创建对象的细节,使用者只使...原创 2019-10-07 22:18:55 · 125 阅读 · 0 评论 -
(二)设计模式分类
实验楼设计模式的课程链接(不是广告,这个免费的):https://www.shiyanlou.com/courses/100 目前这些先有个概念,毕竟后面才能理解。 三类设计模式: 创建型模式,用于创建对象,一是将系统使用的具体类封装起来,二是隐藏这些具体类的实例创建和结合的方式。 共 5 种:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,主要处理类和对象的组合,...原创 2019-09-29 22:28:54 · 113 阅读 · 0 评论 -
(一)初识设计模式
利用闲时间整理一下设计模式,目标设定最迟两个月(2019年11月30日)完成吧,目前大计划还没有^-^。 本周先入个门。 原则: 1.开放封闭原则 对扩展开放,对修改封闭。当有新功能时,在原有基础上对代码进行扩展,而不是修改原有代码,保证软件的稳定性。尤其是抽象的类和接口是不允许修改的,因此在设计之初就要考虑好如何去抽象。 2.里氏代换原则 子类对象可以代替任何基类对象出现的地方,反之...原创 2019-09-29 21:56:08 · 132 阅读 · 0 评论