★ 设计模式
文章平均质量分 74
设计模式是针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路。大部分设计模式要解决的都是代码的可扩展性问题。设计模式相对于设计原则来说,没有那么抽象,而且大部分都不难理解,代码实现也并不复杂。这一块的学习难点是了解它们都能解决哪些问题,掌握典型的应用场景,并且懂得不过度应用。
✦昨夜星辰✦
生活就像仰卧起坐,时而卷起,时而躺平。
展开
-
设计原则与思想:面向对象
如何评价代码质量的高低?当谈论面向对象的时候,我们到底在谈论什么?哪些代码设计看似是面向对象,实际是面向过程的?接口vs抽象类的区别?为何说要多用组合少用继承?如何决定该用组合还是继承?如何做面向对象分析和面向对象设计?原创 2022-03-14 21:40:57 · 1071 阅读 · 0 评论 -
原来我们一直写的是违反面向对象编程风格的代码
众所周知,很多业务系统都是基于 MVC 三层架构来开发的,虽然这种开发模式已经成为标准的 Web 项目的开发模式,但它却违反了面向对象编程风格,是一种彻彻底底的面向过程的编程风格,因此被有些人称为反模式(anti-pattern)。特别是领域驱动设计(Domain Driven Design,简称 DDD)盛行之后,这种基于贫血模型的传统的开发模式就更加被人诟病,而基于充血模型的 DDD 开发模式越来越被人提倡。原创 2022-11-13 14:55:04 · 505 阅读 · 1 评论 -
如何利用基于充血模型的DDD开发一个虚拟钱包系统?
上篇文章总结了一些理论知识的铺垫性讲解,讲到了两种开发模式,基于贫血模型的传统开发模式,以及基于充血模型的 DDD 开发模式。今天,我们正式进入实战环节,看如何分别用这两种开发模式,设计实现一个钱包系统。原创 2022-11-13 16:57:13 · 1650 阅读 · 0 评论 -
代码质量、重构、可测试性、解耦杂谈
如何发现代码质量问题?从大处着眼的话,看这段代码是否可读、可扩展、可维护、灵活、简洁、可复用、可测试等等,落实到具体细节,可以从以下几个方面来审视代码。原创 2022-11-14 12:21:01 · 1672 阅读 · 0 评论 -
【设计模式】软件设计七大原则
设计原则不是强行遵守的,而是要讲究一个度,讲究一个取舍,最重要的是要结合合适的业务场景。原创 2021-03-04 00:13:06 · 1704 阅读 · 1 评论 -
【设计模式】状态模式
允许一个对象在其内部状态改变时,改变它的行为原创 2021-03-22 00:46:10 · 134 阅读 · 0 评论 -
【设计模式】访问者模式
封装作用于某数据结构(如List/Set/Map等)中的各元素操作,在不改变各元素类的前提下,定义作用于这些元素的操作原创 2021-03-21 12:39:22 · 166 阅读 · 0 评论 -
【设计模式】责任链模式
比如一个web请求,有一堆的过滤器需要处理(或不处理)这个请求,而这一堆接收此次请求的过滤器对象形成一条调用链,即为责任链模式原创 2021-03-21 11:25:05 · 386 阅读 · 0 评论 -
【设计模式】中介者模式
定义一个封装一组对象如何交互的对象,通过使对象明确的相互引用来促进松散耦合,并允许独立地改变它们的交互原创 2021-03-21 00:21:19 · 228 阅读 · 0 评论 -
【设计模式】命令模式
将“请求”封装成对象,以便使用不同的请求原创 2021-03-20 23:42:38 · 115 阅读 · 2 评论 -
【设计模式】备忘录模式
保存一个对象的某个状态,以便在适当的时候恢复对象,即“后悔药”原创 2021-03-19 23:25:33 · 142 阅读 · 0 评论 -
【设计模式】观察者模式
定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新原创 2021-03-19 22:38:59 · 128 阅读 · 0 评论 -
【设计模式】解释器模式
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子原创 2021-03-19 21:49:05 · 244 阅读 · 0 评论 -
【设计模式】策略模式
定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的用户原创 2021-03-18 00:01:12 · 177 阅读 · 0 评论 -
【设计模式】迭代器模式
提供一种方法,顺序访问一个集合对象中的各个元素,而又不暴露该对象的内部表示原创 2021-03-17 21:08:14 · 245 阅读 · 0 评论 -
【设计模式】模板方法
定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现,在不改变算法结构的情况下,重新定义算法的某些步骤原创 2021-03-16 23:34:36 · 234 阅读 · 0 评论 -
【设计模式】代理模式
为其他对象提供一种代理,以控制对这个对象的访问,代理对象在客户端和目标对象之间起到中介作用原创 2021-03-16 21:36:08 · 255 阅读 · 0 评论 -
【设计模式】桥接模式
抽象部分和具体实现部分分离,是它们之间可以独立的扩展,通过组合的方式建立两个类之间的联系原创 2021-03-15 22:13:24 · 357 阅读 · 0 评论 -
【设计模式】组合模式
将对象组合成树形结构以表示“部分-整体”的层次结构,使得客户端对单个对象和组合对象保持一致的处理方式原创 2021-03-14 23:35:20 · 236 阅读 · 1 评论 -
【设计模式】享元模式
提供了减少对象数量从而改善应用所需的对象结构的方式,运用共享技术有效的支持大量细粒度的对象,这就是享元模式原创 2021-03-14 21:38:24 · 224 阅读 · 0 评论 -
【设计模式】适配器模式
将一个类的接口转换成客户期望的另一个接口,使原本接口不兼容的类可以一起工作,这就是适配器模式原创 2021-03-13 16:45:15 · 217 阅读 · 0 评论 -
【设计模式】装饰者模式
装饰者以组合的方式将被装饰者组合进来,然后可以通过装饰者的构造器传入被装饰者,后进行无限可能的装饰原创 2021-03-13 00:22:41 · 276 阅读 · 0 评论 -
【设计模式】外观模式
外观模式又叫门面模式,提供了一个统一的接口或外观类,用来访问子系统中的一群接口,而应用端只需要使用这个外观类进行操作原创 2021-03-11 23:19:35 · 117 阅读 · 0 评论 -
【设计模式】原型模式
原型模式通俗来说就是利用克隆方法克隆出新的对象,无它,唯克隆尔~原创 2021-03-10 22:23:59 · 155 阅读 · 1 评论 -
【设计模式】建造者模式
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,用户只需要指定需要建造的类型就可以得到它们,建造过程及细节不需要知道,这就是建造者模式原创 2021-03-10 18:37:32 · 292 阅读 · 1 评论 -
【设计模式】简单工厂、工厂方法、抽象工厂
三个创建型设计模式,简单工厂模式(非GOF23种设计模式之一),工厂方法模式,抽象工厂模式,递进式分析了解学习原创 2021-03-09 20:29:47 · 450 阅读 · 2 评论