设计模式
醉美遇见你倾城
菜鸟一只
展开
-
UML统一建模语言
写代码前,需要考虑清楚下面的的一些基本问题:要做什么?做成什么样?怎么去做?建立什么样的模型对于如何发现和解决问题具有重要影响。评判标准是由使用者来设定的,最好模型能够切合实际。从需求入手,建立模型,实现编码常用的几种用例间关系1. 泛化关系:表示同一业务目的(父用例)的不同技术实现(子用例) 支付: 微信支付 支付宝支付 ...原创 2019-04-08 10:10:42 · 186 阅读 · 0 评论 -
设计模式-观察者模式
观察者模式是用于建立一种对象与对象间的依赖关系,一个对象发生改变时自动通知其他对象,其他对象做出相应反应。在观察者模式中,发送改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者。观察目标内部应该包含增加和删除观察者的方法。观察者们则需要继承一个含有更新状态函数的抽象观察者类。每个观察者自己类内部初始化状态,然后通过继承的纯虚函数进行重写状态的更新。观察者模式...原创 2019-04-09 23:14:14 · 119 阅读 · 0 评论 -
设计模式-命令模式
命令模式是将一个请求封装为一个对象,从而让我们可用不同的请求对客户进行参数化。服务器处理方法的封装在一个类中,然后构建一个抽象消息类,将申请不同处理方法的消息封装成一个类,每个类中封装了消息处理对象,于是每条消息用一个对象来代替,该对象中包含了处理该消息的方法,并在该对象中调用对应方法。处理方法类: 处理增加金币 处理增加钻石 处理升级抽象...原创 2019-04-09 23:13:41 · 118 阅读 · 0 评论 -
设计模式-策略模式
策略模式定义了一系列的算法,并将每个算法封装起来,而且使他们可以相互替换。策略模式让算法独立于使用的客户而变化。策略模式是将被使用对象的共有使用方法抽象出来,被使用对象继承抽象对象,并实现各自特有的使用方法。使用者通过给策略传递被使用对象的参数,通过策略使用对象,而不是直接使用对象。抽象打折类: 具体商场A(打折A) 具体商场B(打折B)策...原创 2019-04-09 23:13:00 · 91 阅读 · 0 评论 -
设计模式-模板方法模式
模板方法类是一种行为模式。行为模式是用来描述类或对象之间怎样进行交互,或者如何分配职责。模板方法模式:定义一个操作中算法的框架(抽象类,定义一些固定操作的纯虚函数),而将一些步骤延迟到子类中(由子类实现各自的操作)。模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。模板方法模式中的角色:AbstractClass(抽象类):在抽象类中定义了一系列基本操作(Pr...原创 2019-04-08 10:17:25 · 112 阅读 · 0 评论 -
设计模式-适配器模式
适配器模式:将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器类继承抽象目标接口类,在自己的类中将原来的对象封装进来,并在继承的抽象接口方法中将其转化为可以使用的函数方法。适配器模式中角色:Target(目标抽象类):目标抽象类定义客户所需接口,可以是一个抽象类或接口,也可以是具体类。Adapter(适配器类):适配器可以调用另...原创 2019-04-08 10:16:50 · 82 阅读 · 0 评论 -
设计模式-外观模式
外观模式:外观模式就是将一组具有类似功能的类群,比如类库,子系统等等抽象到同⼀一个的接⼝进⾏行管理,外界只需要通过此接⼝口与⼦子类系统进⾏行交互,⽽而不必要直接与复杂的⼦子类系统进⾏行交互。根据迪米特法则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。外观模式角色:Façade(外观角色):为调用方,定义简单的调用接口。SubSystem(子系统角色):功能提供者...原创 2019-04-08 10:16:22 · 218 阅读 · 0 评论 -
设计模式-代理模式
代理模式:通过代理类控制对原对象的访问,即将原对象封装在代理类中,在代理类的构造函数中初始化被代理的对象,通过创建代理类对象来调用原对象的方法。代理模式是构造型模式,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问。所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。...原创 2019-04-08 10:15:44 · 121 阅读 · 0 评论 -
设计模式-单例模式
单例模式:指程序运行过程中只能存在一个该类的对象。此时,程序维护该一个对象。保证一个类、只有一个实例存在,同时提供能对该实例加以访问的全局访问方法。模式中的角色:单例:在单例类的内部实现只生成一个实例,同时它提供一个静态的getInstance()工厂方法,让客户可以访问它的唯一实例; 为了防止在外部对其实例化,将其构造函数设计为私有; 在单例类内部定义...原创 2019-04-08 10:15:16 · 108 阅读 · 0 评论 -
设计模式-工厂模式/抽象工厂模式/简单工厂模式
原始模式:在自己的业务函数中创建对象。但是对于某些创建过程过于复杂的类而言,加大了客户端的压力。简单工厂模式:用于将参数传给工厂类,工厂依据参数创建对象给用户。模式中含有的角色:工厂:简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。抽象产品:简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口具体产品::简单工厂模...原创 2019-04-08 10:14:50 · 107 阅读 · 0 评论 -
面向对象设计原则
如何提高一个软件系统的可维护性和可父用性是面向对象设计需要解决的核心问题之一。原则目的:高内聚,低耦合。高内聚值,一个类或函数仅实现一个功能。降低类与类之间的耦合关系。设计原则表:名称定义单一职责原则(Single Responsibility Principle)类的职责单一,对外只提供一种功能,而引起类变化的原因都应该只有一个开闭原则(Open-Close...原创 2019-04-08 10:13:48 · 122 阅读 · 0 评论 -
设计模式基本概念
1.《建筑的永恒之道》中关于模式的概念: “每个模式都描述了一个在我们的环境中不断出现的问题,然后描述,了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的成功的解决方案,无须再重复相同的工作。”2. 设计模式定义:“设计模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。”3. 软件的模式不仅仅是设计模式,还有架构模式,分析模式和过程模式等等。4. “简...原创 2019-04-08 10:12:37 · 655 阅读 · 0 评论 -
设计模式-装饰模式
装饰模式是对继承的一种扩展,对原对象进的功能扩展。装饰模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。装饰模式是一种对象结构型模式。装饰模式是将抽象装饰类继承抽象构件类,但是并不具体实现其继承的纯虚函数,而是留给具体装饰类去实现。在抽象创始类中,必须保存被装饰之前的构建状态,因此,抽象装饰类中具有抽象构建类对...原创 2019-04-09 23:14:40 · 117 阅读 · 0 评论