
设计
rv0p111
之前由于一些原因博客没有更新,现在还是正常更新,继续分享..
展开
-
设计模式基本原则浅析
设计模式其实就是在针对开发中存在的问题,去设计的解决方案,当然这些解决方案也经过很多人的实践通过了别人的认可的。设计模式可以使项目的结构变的清晰,也好维护。设计模式其实就是用来解决问题的。设计模式的原则其实就是去构建可复用和可维护代码,设计模式的几个基本原则下面也简单的介绍下。1、开闭原则就是一个软件实体应该通过扩展来实现变化,而不是通过修改已有代码来实现一个扩展和变化。其实就是一个理想化的过程就...原创 2017-12-08 09:24:58 · 366 阅读 · 0 评论 -
策略模式浅析
简单概述:先说下官话策略模式是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。举个例子就比如说我们有很多个if else 判断if else判断就拿下面的代码来举个例子,就比如我们是要根据某个特定的条件去判断做不一样的处理的话,我们堆在一起,这样根据条件判断的语句会变得很长以后看起来其实也很难的去维护,所以我们可以考虑利用策略...原创 2017-12-08 18:29:40 · 298 阅读 · 0 评论 -
适配器模式浅析
首先先举个例子,在现实生活中每个国家的电压不一样,如果我们出去旅游没有电源适配器的话是根本无法充电的,但是我们会发现现在的情况都逐渐的消失了,因为充电器里面其实自带了这么一个电源适配器,这其实就是适配者模式的体现。适配器模式有个解释如下将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。适配器模式中有三个概念我们也需要知原创 2017-12-10 08:30:58 · 315 阅读 · 0 评论 -
迭代器模式浅析
首先还是官话,迭代器提供了一种顺序访问聚合对象中元素的方法,而不用去暴露结构的底层表现和细节。迭代器定义了一个用于访问集合元素并记录当前的元素的接口。不同的迭代器可以去执行不同的迭代的策略。迭代器模式的缺点:由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的个数成对增加,这在一定程度上增加了系统的复杂性。在迭代器模式中有四个角色我们需要知道的1、原创 2017-12-17 15:38:46 · 405 阅读 · 0 评论 -
组合模式浅析
组合模式的概念其实就是将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性,因为组合模式其实就是不想让客户端知道它是在处理那些类型的节点。组合模式可以把相同基类型的对象组合到树状的结构中,所以其中的父节点是包含同类型的子节点。”部分-整体“的层次结构其实就是包含对象得到组合又包含了叶节点也就是单个对象的一种层级结构。因为每个组合或者是叶子原创 2017-12-17 20:29:12 · 242 阅读 · 0 评论 -
模板方法模式浅析
模板方法模式的话其实就是好比我们在做各种各样的汉堡的时候,有鸡肉汉堡,牛肉汉堡等等,那么其实做汉堡的步骤的话都有需要准备面包啊,要什么沙拉酱啊还是番茄酱啊,这些通用的步骤其实是有的,这样的步骤其实就可以被称之为是模板方法,因为我们在做其他的一些汉堡的时候其实去修改的调用这些方法就可以了。模板方法可以使子类可以不改变一个算法的结构就可以去重定义该算法的某些特定步骤。模板方法模式的思想其实就是原创 2017-12-20 11:46:30 · 243 阅读 · 0 评论 -
命令模式浅析
简单的举个例子就比如说电灯,开关和风扇,我们可以通过开关去控制风扇和电灯的开和关。其中开关是发送者,电线是命令对象,而风扇和电灯就是接受者。电线是可以换的,所以就是说开关可以做两个不同的操作命令模式:其实就是把请求封装成一个对象,从而可以使用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作 这样的好处就在于我们在给接受者去发送请求的时候,然后让接受者...原创 2018-06-27 10:37:08 · 282 阅读 · 0 评论 -
状态模式基本概念
本身就是个菜鸟,写不出来什么高深的东西,下面就简单的介绍下其的好处首先我们需要先了解下状态模式的角色角色一:抽象状态->StateProtocol角色二:具体状态->ConcrateState角色三:状态管理器(上下文)->Context 举个生活的例子平常我们去写遥控器去控制频道的切换可能会写在同一个类当中import Foundati...原创 2018-07-23 10:30:06 · 422 阅读 · 0 评论 -
迭代器模式的基本概念
首先迭代器模式其实可以分为四个角色角色一:Iterator(迭代器接口)->协议 作用:定义了访问遍历元素的方法角色二:ConcreteIterator(具体迭代器)作用:遍历具体元素方法实现角色三:Aggregrate(容器接口)->协议 作用:定义了存储元素的方法角色四:ConcreteAggregrate(具体容器) 作用:实现了存储元素的方法所以我们去...原创 2018-07-18 11:08:40 · 524 阅读 · 0 评论 -
基于观察者模式的设计
观察者模式的角色划分其实可以分为被观察者(目标对象)、具体被观察者、观察者(抽象)和具体观察者 接下来我们看下抽象的被观察者的定义import UIKit//抽象被观察者protocol Observable { func addObserver(observer:Observer) func removeObserver(observer:Observer...原创 2018-07-15 08:27:21 · 257 阅读 · 0 评论 -
构建者模式案例体现
最近学习到一个构建者模式的案例,感觉又有了点体会,记录一下,首先我们来分下角色的划分角色一:组装类->ZXAlertController角色二:构建者->Builder角色三:产品->AlertController角色四:构建者参数类->BuilderParams 首先我们先来看下我们的构建者参数类import UIKit//建造...原创 2018-07-30 16:24:25 · 274 阅读 · 0 评论 -
中介者模式
基本概念在面向对象的设计中是鼓励把行为分散到不同的对象中的,虽然把行为分散到不同的对象之间能增加复用性,但是这样的话可能会导致对象与对象相互关联的越来越多,这样的话就会使对象很难在不依赖对象的情况下独立工作,而且由于行为分布于多个对象,如果我们要去修改某个行为的话可能就很难的去修改,这样的话我们去创建的类就会越来越多,通过这样的方式去支持应用程序的新行为。中介者模式的话其实就是让对象的交互...原创 2017-12-15 19:57:28 · 290 阅读 · 0 评论 -
备忘录模式浅析
其实备忘录模式就是在不破坏封装的前提下,去捕获一个对象的内部的状态,并在这个对象之外去保存这个状态,这样的话之后就可以把这个对象恢复到原先保存的状态。备忘录模式在很多软件中都有用到,因为现在很多软件都可以有撤销操作,其实就是把先前的某个状态去记录下来了。就好比在有些游戏中,在你退出游戏,你原本所处的状态其实和你再重新进入游戏的状态是一样的,这其实就是做了一个存储。备忘录模式其实就是将要保存原创 2017-12-24 12:51:26 · 337 阅读 · 0 评论 -
桥接模式浅析
基本概念1、桥接模式是将抽象部分与它的实现部分分离。桥接模式的特点其实就是1、把依赖与具体实现的改为依赖抽象,以此来脱耦,达到松耦合状态 2、其实就是分离了接口和实现的部分,提高了扩展性。其实我们可以这么理解桥接模式设计到抽象类和一个桥接口,其中桥接口其实就是用户要去定义实体类去实现具体功能的那个方法。2、桥接模式将继承关系转换为关联关系,所以降低了类与类之间的耦合,减少了我们的代码编写量...原创 2017-12-09 11:42:06 · 1186 阅读 · 0 评论 -
享元模式浅析
享元模式的设立其实主要就是为了减少创建对象的数量,这样就可以去减少内存的占用和提高性能,也就是说尽可能的去减少内存的使用量和分享给更多的相似的物件。有个例子是这样的就是如果一个文本系统的话如果我们采取每一个字母都定义一个对象,那如果我们有几万的相同的字母不是就会有几万个对象了吗,那肯定是不可能的而且也不会这么设计,所以我们就需要用到享元模式了。享元模式通常是和工厂模式一起使用的,大概的实现原创 2017-12-09 18:42:28 · 284 阅读 · 0 评论 -
责任链模式浅析
责任链模式的话其实就是使多个对象都有机会去处理请求,这样可以避免请求的发送者和接受者之间的发生耦合,这个模式是将这些对象去连成一条链,并且沿着这条链去传递请求,直到有一个对象可以去处理这个请求。这样的好处就在于发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这这样我们就可以在不影响客户端的情况下去重新组织和分配责任。责任链模式的主要的思想其实就是一个对象引用了同一类型的另原创 2017-12-19 21:44:59 · 293 阅读 · 0 评论 -
UML建模浅析
UML建模技术是一种建模语言,指用模型元素来组建整个系统的模型,模型元素包括系统中的类、类和类之间的关联、类的实例相互配合实现系统的动态行为等。利用UML图可以更好的表达出我们代码的业务逻辑是怎么样的,所以首先我们应该搞清楚UML图中的一些关系和箭头是什么意思才能更好的去看清楚别人所写的一个UML结构图,先看两张图把关于依赖关系上面说的知识一部分,其实还有就是,依赖(dependency)关系表示...原创 2017-12-08 16:07:36 · 371 阅读 · 0 评论 -
工厂模式浅析
一、简单工厂首先工厂模式其实分为简单工厂,工厂方法和抽象工厂,工厂模式其实就是我需要什么,这个工厂就给我制造什么。关于简单工厂模式的应用如下所示:首先中定义一个抽象类,抽象类中写一些我们需要的抽象方法或者属性,抽象子类去继承这个抽象类,然后再去实现具体的操作。然后工厂类根据外界的需求去创建对应的抽象子类实例并传给外界,而对象的创建是什么类型是由外界决定的。外界只需要知道抽象子类与之对应的参数即可,...原创 2017-12-09 16:41:02 · 346 阅读 · 0 评论 -
装饰模式浅析
基本概念装饰模式是动态的给一个对象添加一些额外的职责,相对于扩展功能来说,装饰模式比生成子类更加灵活。其实它的思想就在于向对象中去添加行为,而不去破坏其原有的风格,也就是说增加了新功能的对象是同一个类的加强版,就好比一张照片,我们给它增加了一个相框,任何增强的功能都可以进行动态的添加或者删除,因为相框其实本身就可以删除,这就是装饰。装饰器模式允许向一个现有的对象添加新的功能,同时又不改变其...原创 2017-12-22 06:11:08 · 346 阅读 · 0 评论 -
原型模式浅析
其实在日常的开发中,对于有一些对象的创建会很复杂,而如果这个时候我们要去创建一个和之前我们创建的对象几乎一样的对象,而且只有轻微的变动的话,其实我们就可以用原型模式来做,从这个原型对象中拷贝出来。其实总的概念就是让原型对象让它生成自己的复制品,就可以节省创建它们的大量的时间和精力,因为这样比创建各种跟父类差异很少的独立的类来说,这样的方法可复用性高,并且好维护。原型模式的主要思想其实就是基原创 2017-12-22 08:22:36 · 278 阅读 · 0 评论 -
建造者模式(构建者模式)
简单介绍建造者模式的话其实就是将一个复杂对象的构建与它的表示分离,可以使得同样的构建过程可以有不同的表示,就好比吃套餐,KFC,麦当劳,华莱士其实套餐中变来变去就那些东西,但是不同的组合起来就是不一样的套餐,建造者模式其实就是分离了组件的构造过程,建造者模式其实是着重于一步步得构造出复杂对象。因为我们创建对象其实就是一个过程。抽象工厂模式着重于多个系列的产品对象。角色划分在建造者模式中...原创 2017-12-15 07:09:55 · 447 阅读 · 0 评论 -
外观模式浅析
外观模式(门面模式):其实就是通过包装,我们可以在外界去调用统一的接口,可以这么说在外面我们所能看到的是外观对象,而不会看到里面的实际的操作,和里面的对象,这样的话其实就是让我们的代码更加好阅读,以及增强了可维护性。外观模式的基本概念就是要求一个子系统的外部和其内部的通信必需通过一个统一的对象进行也就是门户 外观模式提供了一个高层次接口,使得子系统更易于使用 就好比我们如果要把很多...原创 2017-12-24 09:27:46 · 353 阅读 · 0 评论 -
命令模式和备忘录模式的对比
首先先简单的分析下我们下面要讲解的案例当中的角色有哪些,对于命令模式和备忘录模式都有分开来进行讲解命令模式角色一:接受者 -> Receiver角色二:命令接口 ->CommandProtocol角色三:具体命令 继承命令接口,去实现相应的方法 ->ConcreteCommand角色四:请求者 -> Invoker ,其中这个就是调用者可以是我们客户...原创 2018-07-22 22:22:27 · 1851 阅读 · 0 评论