设计模式
sincerit
这个作者很懒,什么都没留下…
展开
-
sincerit 简单工厂模式(Simple Factory Pattern)
设计模式背后的思想:面向接口编程而不是面向实现编程优先使用组合而不是继承发现变化并且封装变化原创 2018-11-22 14:52:53 · 130 阅读 · 0 评论 -
sincerit 工厂方法模式(Factory Method Pattern)
工厂方法模式(Factory Method Pattern)工厂方法模式:定义了一个用于创建对象的接口,让子类决定实例化哪一个类, 工厂方法使一个类的实例化延迟到其子类工厂方法模式:需要一个Creator接口类,一个Product接口类,Creator的具体子类,Product的具体子类。工厂方法模式:称为工厂模式或多态工厂模式,让一个类的实例化延迟到Creator的子类ConcreteCr...原创 2018-11-24 23:29:27 · 135 阅读 · 0 评论 -
sincerit 命令模式(Command Pattern)
命令模式:命令模式:需要一个Invoker请求者类(发送命令),一个Command类,Creator的具体子类,Product的具体子类。命令模式:称为工厂模式或多态工厂模式,让一个类的实例化延迟到Creator的子类ConcreteCreator。命令模式:属于23种GOF设计模式,并且是一种类创建型模式。命令模式:实质是由Factory接口类的子类工厂去创建具体的产品对象。...原创 2018-12-02 19:55:10 · 144 阅读 · 0 评论 -
sincerit 抽象工厂模式(Abstract Factory Pattern)
上一篇讲到工厂模式方法,由于工厂方法模式中每个工厂只创建一类具体类的对象,这将会导致系统当中的工厂类过多,这势必会增加系统的开销。此时,我们可以考虑将一些相关的具体类组成一个“具体类族”,由同一个工厂来统一生产,这就是下面要讲的抽象工厂模式。抽象工厂模式:图片来源:https://blog.csdn.net/mark_lq/article/details/45132113...原创 2018-12-02 21:15:10 · 619 阅读 · 0 评论 -
sincerit 观察者模式(Observer Pattern)
目标(Subject)即观察者观察的对象观察者(Observer)观察者模式:主要特点是对象之间是一对多的依赖关系,每当目标(subject)的状态发生改变时,其相关的观察者(observer)做出相应的行为观察者模式:由一个Subject抽象目标类,ConcreteSubject具体目标类,Observer抽象观察者,ConcreteObserver具体观察者组成观察者模式:是23种设计...原创 2018-12-03 19:48:56 · 309 阅读 · 1 评论 -
sincerit 中介者模式(Mediator Pattern)
中介者模式跟观察者模式有些相似,观察者模式是一对多的模型,那么中介者就是多对多(复杂的网状)的模型,在实际生活中也有许多的例子,比如QQ聊天,QQ成员既是消息的发送者又是消息的接受者,这就有多对多的关系中介者模式:主要特点就是多对多的关系,就如上面的QQ聊天,可以有多个人发消息(一个也是可以的),群所有成员都是消息接收者中介者模式:有抽象中介者类AbstractMediator, 具体中介者...原创 2018-12-17 20:40:51 · 142 阅读 · 0 评论 -
sincerit 迭代器模式(Iterator Pattern)
电视机想必大家家里都有,我们可以把电视机看成一个存储了电视频道的一个集合,我们要换频道进行选择的时候呢可以使用遥控器,那么切换频道就相当于对集合元素进行遍历的操作,可以返回上一个频道,下一个频道,跳转到指定的频道,遥控器为操作电视频道带来了很大的方便,用户并不需要知道这些频道到底是如何存储在电视机中,只要使用遥控器就可以切换频道。在软件开发中,也存在大量类似电视机一样的类,它们可以存储多个成员对象...原创 2018-12-17 21:20:49 · 177 阅读 · 0 评论 -
sincerit 策略模式(Strategy Pattern)
当我们在外面旅游时会根据实际实际情况来选择一种最合适的出行方式,在定制旅行计划时,如果目的地较远,时间不多,不差钱,可以选择坐飞机去旅游;如果目的地虽然较远,但假期长且需要控制旅游成本可以选择做火车或汽车。在软件开发中,也常常遇到类似的选择的情况,实现某一个功能有多种方法,每种方法对应一种算法,此时可以使用一种设计模式来灵活的选择方法解决问题,也能够方便的增加新的解决算法,这就是策略模式的只要思想...原创 2018-12-17 22:15:18 · 139 阅读 · 0 评论 -
sincerit 单例模式(Singleton Pattern)
先引入一个问题:Windows任务管理器大家都很熟悉,大家可以尝试在计算器上多次单击“启动任务管理器”,看是否可以启动多个任务管理器,在正常情况下,无论启动任务管理器多少次,Windows始终只能弹出一个任务管理器的窗口,也就是说,在一个Windows系统中,任务管理器只存在一个实例,为什么要这样设计呢?可以从以下两个方面来分析:其一,如果能弹出多个窗口,且这些窗口的内容完全一致,全部都是重...原创 2018-12-12 11:50:48 · 162 阅读 · 0 评论