![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 91
阿彪最稳 Jian了
博客已搬家到 https://juejin.cn/user/3245414491891240
展开
-
TS实现观察者模式和发布订阅模式
观察者模式的定义:观察者模式指的是一个对象(Subject)维持一系列依赖于它的对象(Observer),当有关状态发生变更时 Subject 对象则通知一系列 Observer 对象进行更新。简单来说就是 A 对 B 的某个属性敏感,当B的这个属性发生变化时,A要及时做出相应的处理。此时A就是观察者Observer,B就是被观察者Subject。通过一个热水器的例子来实现以下观察者模式: - 温度检测装置可以获取到水的实时温度,用来判断水是不是烧开了。需求:在水加热到100℃时关闭电源原创 2020-07-09 17:42:16 · 1259 阅读 · 4 评论 -
关于抽象工厂模式的定义和实现
前言部分摘自:《设计模式之禅》 这本书抽象工厂模式的定义为创建一组相关或相互 依赖的对象提供一个接口,而且无须指定它们的具体类。一个好理解的例子:讲了女娲造人的故事。人是造出来了,世界也热闹了,可是低头一看,都是清一色的类型,缺少关爱、仇恨、喜怒哀乐等情绪,人类的生命太平淡了,女娲一想,猛然一拍脑袋,忘记给人类定义性别了,那怎么办?抹掉重来,于是人类经过一次大洗礼,所有的人种都消灭掉了,世界又是空无一物,寂静而又寂寞。由于女娲之前的准备工作花费了非常大的精力,比如准备黄土、八卦炉等原创 2020-05-22 16:31:46 · 440 阅读 · 0 评论 -
关于工厂模式的定义和实现
前言部分摘自:《设计模式之禅》 这本书工厂模式的定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使-一个 类的实例化延迟到其子类。一个好理解的例子:东汉《风俗通》记录了一则神话故事, 开天辟地,未有人民,女娲搏黄土做人”,讲述的内容就是大家非常熟悉的女娲造人的故事。开天辟地之初,大地上并没有生物,只有苍茫大地,纯粹而洁净的自然环境,寂静而又寂寞, 于是女娟决定创造一个新物种(即人类)来增加世界的繁荣,怎么制造呢?别忘了 女娲是神仙,没有办不到的事情,造人的过程是这样的,原创 2020-05-21 16:30:14 · 291 阅读 · 0 评论 -
关于单例模式的定义和实现
前言摘自:《设计模式之禅》单例模式的定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。一个好理解的例子:自从秦始皇确立了皇帝这个位置以后,同一时期基本上就只有一个人孤零零地坐在这个位置。这种情况下臣民们也好处理,大家叩拜、谈论的时候只要提及皇帝,每个人都知道指的是谁,而不用在皇帝前面加上特定的称呼,如张皇帝、李皇帝。这一个过程反应到设计领域就是,要求一个类只能生成一个对象(皇帝),所有对象对它的依赖都是相同的,因为只有一个对象,大家对它的脾气和习性都非常了原创 2020-05-19 17:26:33 · 378 阅读 · 0 评论 -
用简单的例子解释什么是面向对象
什么是面向对象OO:可以先看下 https://www.jianshu.com/p/224d8fc4d0f0提起面向对象,肯定都会先想到三大特性:封装,继承,多态。那这三大特性具体怎么理解呢?可以先在脑子里过一下。如题,举个栗子吧:加入我们现在要把大象装进冰箱,面向过程的做法:打开冰箱门,把大象装进去,关上冰箱门。面向对象的做法:冰箱是一个对象,大象是一个对象。冰箱拥有开门,关门的动作,...原创 2019-01-23 15:51:47 · 10336 阅读 · 6 评论 -
面向对象设计原则
1、开闭原则接口,类,方法等应该对扩展开放,对修改关闭。2、单一职责原则接口,类,方法等有且仅有一个职责3、里式替换原则一个类的子类应该可以替换在任何基类出现的地方,并且代码不会受到影响4、迪米特原则接口,类,方法等应当与有密切关联的类的发生关系,尽可能少地与其他实体发生相互作用5、依赖倒置原则上层模块不应该依赖底层模块,它们都应该依赖于抽象。抽象不应该依赖于...原创 2019-12-16 14:41:53 · 116 阅读 · 0 评论 -
为什么依赖注入出现的频率这么高?
依赖注入(Dependency Injection)是用于实现控制反转(Inversion Of Control)的最常见的方式之一。那么什么是控制反转?**控制反转**:是面向对象编程中的一种设计原则,常用于解耦。因为大多数应用程序都是由两个或是更多的类通过彼此的合作来实现业务逻辑,这使得每个对象都需要获取与其合作的对象(也就是它所依赖的对象)的引用。如果这个获取过程要靠自身实现(也就是通过new一个你要使用的对象),那么这将导致代码高度耦合并且难以维护和调试。而控制反转就是为了解决这个问题。简原创 2020-05-06 15:38:38 · 454 阅读 · 0 评论