随笔分类 -  二十四章经(设计模式)

1
设计模式的实际应用
摘要:前言 设计模式并不能使我们的代码变得高效,因为很多的时候并不是设计模式使我们的代码高效,而是架构。在现代中,我们不能从头不用一个框架进行开发,框架的选择是架构的一部分,这些很大一部分决定了我们的性能。 设计模式可以使我们的代码变得优雅,在未来的一个扩展开发中变得更好,也许我们在开发初期看不到,但是随 阅读全文
posted @ 2020-11-28 23:34 敖毛毛 阅读(99) 评论(0) 推荐(0)
摘要:前言 这个补一章,因为当时觉得很简单所以就跳过了,所以补齐十一。 什么是模板模式呢?这是一个晚绑定非常好的体现。把定义抄一下哈:一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 这节主要介绍一下晚绑定是 阅读全文
posted @ 2020-11-01 12:29 敖毛毛 阅读(116) 评论(0) 推荐(0)
摘要:前言 什么是建造者模式?它是创建型,面临的问题是一个对象的创建较为复杂,是由其子部分通过某种算法组成的,它的子部分是变化的,但是其算法是稳定的。这个是非常常见的一种设计模式,后面会举例子,演化各种构建方式的历史进程。 正文 比如说,有一台电脑: public abstract class Compu 阅读全文
posted @ 2020-10-22 10:29 敖毛毛 阅读(305) 评论(0) 推荐(0)
摘要:前言 这个东西写用的少,框架中用的多。有一次面试中,遇到了,平时我没有用过,现在整理一下。 观察者模式解决的问题是什么? 有这样的一种场景,比如说一个对象的状态发生改变,所有的依赖对象将会得到通知。 模型如下: 就是这样一个境地,那么问题来了,这样耦合性就大,比如说我要添加一个观察者,那么改动的对象 阅读全文
posted @ 2020-09-24 21:34 敖毛毛 阅读(271) 评论(0) 推荐(2)
摘要:前言 什么是状态模式呢?其实这个东西和策略和命令都很像,可以说其实他们是一种思想的不同表达形式。 先贴一下: 在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 正文 public class context { public string 阅读全文
posted @ 2020-09-09 18:02 敖毛毛 阅读(179) 评论(0) 推荐(1)
摘要:前言 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 也就是搭积木,通过某种组合可以形成一种新结构,这种结构有着某种规律 阅读全文
posted @ 2020-09-09 11:22 敖毛毛 阅读(191) 评论(0) 推荐(0)
摘要:前言 备忘录现在基本看到的很少,因为其局限性很大哦。 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 要做的一件事就是说,在某个时段保存某个状态,然后再某个时段可以恢复。 如果把备忘录看成一种思想,思想是获得一个新的某个时段对 阅读全文
posted @ 2020-09-08 16:38 敖毛毛 阅读(163) 评论(0) 推荐(0)
摘要:前言 什么是命令模式呢?其实是这样一个东西。 “行为请求者”与“行为实现者”通常呈现一种“紧耦合” 先介绍一下什么是行为请求者和行为实现者没有分开: class Person() { public void eat() { //吃饭 } public void sleep() { //碎觉 } } 阅读全文
posted @ 2020-09-08 16:07 敖毛毛 阅读(418) 评论(0) 推荐(0)
摘要:前言 当我们的子系统之间相互调用的时候,很有可能出现下面这种情况: 这样的情况出现的问题就是系统复杂度极高,难以维护,中介者模式可以缓解。 看下什么是中介者模式: 中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的 阅读全文
posted @ 2020-09-08 11:33 敖毛毛 阅读(302) 评论(0) 推荐(0)
摘要:前言 什么是代理模式呢?比如说你要去办一件事,你请了一个代理去办,为什么请一个代理去办呢?原因也很简单就是因为这件事复杂,但是你要做的事情就是你的一个手印即可。 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中,我们创建具有现有对 阅读全文
posted @ 2020-09-04 11:18 敖毛毛 阅读(185) 评论(0) 推荐(0)
摘要:前言 门面模式,也成为外观模式,直接看思想。 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 主要解决:降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的 阅读全文
posted @ 2020-09-04 10:42 敖毛毛 阅读(157) 评论(0) 推荐(0)
摘要:前言 单例较为简单,所以直接就写代码了。 正文 加载的时候实例化 private static Person person=new Person(); 首次使用的时候实例化 private static Person person; Static Person() { person=new Pers 阅读全文
posted @ 2020-09-03 11:34 敖毛毛 阅读(119) 评论(0) 推荐(0)
摘要:前言 原型模式解决的是什么问题呢?有一个问题就是在软件系统中,经常面临着"某些结构复杂的对象"的创建工作,由于工作的需要这些对象经常面临着巨大的变化,但是却有某些稳定的接口,初始化对象不是特别想要的,那么可以考虑到原型模式。还有一个就是希望保持或者使用一个中间状态,也就是说希望传入的值不改变。 正文 阅读全文
posted @ 2020-09-02 08:48 敖毛毛 阅读(156) 评论(0) 推荐(0)
摘要:前言 工厂模式解决了对象创建导致的紧耦合的关系,从而支持对象创建的稳定。那么抽象工厂是解决什么问题呢? 我们知道要松耦合高内聚,那么什么时候需要高内聚呢?高内聚解决什么问题呢? 在软件系统中,经常面临着"一系列相互依赖对象"的创建工作。同时由于需求的变化,往往存在更多系列的创建工作呢? 正文 在我们 阅读全文
posted @ 2020-09-01 23:48 敖毛毛 阅读(193) 评论(0) 推荐(0)
摘要:前言 介绍工厂模式,展示工厂模式的演化。 正文 看下工厂模式是如何演化的。 public interface ISplitter { void Splite(); } class BinarySplitter : ISplitter { public void Splite() { throw ne 阅读全文
posted @ 2020-08-31 08:58 敖毛毛 阅读(227) 评论(0) 推荐(0)
摘要:前言 什么是设计模式?说白了就是套路,是经过历代程序员总结出来的。很多时候我们虽然学会了很多套路,但是啥时候使用,使用哪个合适,我想这才是问题的关键。 知道怎么用不知道什么时候用,这时候看下代码风格也行用的上,策略模式是非常容易通过代码风格使用上的。 策略模式,为什么叫策略模式呢?其实策略模式还有一 阅读全文
posted @ 2019-12-29 09:31 敖毛毛 阅读(597) 评论(0) 推荐(1)
摘要:前言 享元模式,表面意思是共享单元,属于结构型设计模式。哦?good啊,如今共享文化高大上,共享肯定节约很多资源吧,肯定用的地方挺多吧,然而并不多,但是又是不可或缺的一种模式。 至于为什么,请看正文部分,将会通过计算分析出为什么用的地方不多,或者说有些地方为什么不该用,同时得出为什么属于结构型,到底 阅读全文
posted @ 2019-12-25 09:46 敖毛毛 阅读(297) 评论(0) 推荐(1)
摘要:前言 适配器模式,是一个看起来简单的模式,同时也是最复杂的模式。 查看适配器的作用,直接查看它的演化,也许更为容易理解。 开车出发 适配器大概分为两类,一类为类适配器,另一类为对象适配器。 解释: 类 | 作用 | | ITarget |一个新的需求接口 Iadapter | 旧的接口 oldCla 阅读全文
posted @ 2019-12-23 18:51 敖毛毛 阅读(359) 评论(0) 推荐(2)
摘要:前言 我是一名博客园的博主,目前排名第199675位,虽然排名稍稍落后,但这并不影响我向大家学习然后自己吹水。 在常见的设计模式中,每个项目或者说产品可以说装饰器几乎必用。 装饰器是decorator,别名wrapper,也称为包装器,是创建型、结构型、行为型分类的结构型,具体有什么用呢? 说有什么 阅读全文
posted @ 2019-12-23 09:40 敖毛毛 阅读(339) 评论(0) 推荐(1)
摘要:背景 把以前的设计模式整理下,也有一些在工作中对设计模式的体悟。 准备写24篇吧,化名为二十四章经,第一章打算写职责链模式,也就是这一篇,是因为工作中除了单例用的最多的就是职责链了。 下面的例子,比市面的介绍类的复杂一些吧,还是可以交流交流的。话不多说,开工吧。 作用 有些人喜欢针对设计模式去探讨优 阅读全文
posted @ 2019-12-16 09:47 敖毛毛 阅读(558) 评论(0) 推荐(1)

1