设计模式
文章平均质量分 92
修于心,怀于思
这个作者很懒,什么都没留下…
展开
-
设计模式之观察者模式
观察者模式<发布订阅模式>UML类图抽象通知者抽象观察者具体通知者具体观察者实际调用定义:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化的时候,会通知所有观察者对象,使他们能够自动更新自己!UML类图抽象通知者这里方便统一管理并且通知所有观察者,一起更新状态,并且可以增加和删除观察者abstract class SubjectMgr{ private List<Observer> observers =原创 2020-09-21 18:06:50 · 199 阅读 · 0 评论 -
设计模式之迪米特法则
原理:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中一个类需要调用另外一个类的某个方法的话,可以通过第三者转发这个调用迪米特法则根本思想,是强调了类之间的松耦合,我们再设计程序的时候,类之间的耦合越弱,越利于复用,一个处于弱耦合的类被修改,不会对有关系的类造成波及!这个在设计模式里面,灰常重要,小伙伴多用,切记!!!...原创 2020-08-28 23:17:34 · 189 阅读 · 0 评论 -
设计模式之原型模式
原型模式原型类具体原型类理论:原型模式其实是从一个对象再创建另外一个可定制对象,而且不需要知道任何创建的细节原型类using System.Collections;using System.Collections.Generic;using UnityEngine;public abstract class Prototype { private string id; public Prototype(string id) { this.id = i原创 2020-08-28 22:28:03 · 107 阅读 · 0 评论 -
设计模式之代理模式
代理模式理论UML类图Subject类RealSubject类Proxy类调用理论为其他对象提供一种代理以控制对这个对象得访问UML类图Subject类public abstract class Subject { public abstract void Request();}RealSubject类public class RealSubject : Subject{ public override void Request() { De原创 2020-07-29 22:42:27 · 163 阅读 · 0 评论 -
设计模式之装饰模式
装饰模式原理结构图Component职责抽象类抽象ConcreteComonent类抽象Decorator装饰类ConcreteDecoratorA具体装饰实现类ConcreteDecoratorB具体装饰实现类最终实现小结原理动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活!结构图Component职责抽象类/// <summary>/// 管理增加职责抽象类/// </summary>public abstract class Co原创 2020-07-02 22:32:20 · 309 阅读 · 0 评论 -
设计模式之依赖倒转原则
依赖倒转原则原理里氏代换原则原理1.高层模块不应该依赖底层模块,两个都应该依赖抽象2.抽象不应该依赖细节,细节应该依赖抽象里氏代换原则子类型必须能够替换掉他们的父类型,只有当子类可以调换掉父类,软件单位的功能不受到影响时,父类才能真正的被复用,而子类也能够在父类的基础上增加新的行为!...原创 2020-06-30 22:34:49 · 216 阅读 · 0 评论 -
设计模式之开放封闭原则
开放封闭原则原理!!!核心原理两大特征:对于扩展是开放的,对于更改是关闭的!!!面对需求,我们希望对程序的改动是通过增加新代码进行的,而不是更改现有的代码!核心开放封闭原则是面向对象设计的核心所在,遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护,可扩展,可复用,灵活性好,开发人员应该仅对程序中所呈现出频繁变化的那些部分做出抽象,然而,对于应用程序中的每个部分都刻意的进行抽象同样不是一个好主意,拒绝不成熟的抽象和抽象本身一样重要!...原创 2020-06-19 20:39:17 · 166 阅读 · 0 评论 -
设计模式之单一职责原则
单一职责原则解释!!!真正目的解释对于一个类而言,应该只有一个引起它变化的原因!!!!如果一个类承担的责任过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力,这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏!真正目的软件设计真正要做的许多内容,就是发现职责并把那些职责互相分离,如果你能够想到多余一个的动机去改变一个类,那么这个类就多于一个职责,那么就应该考虑类的职责分离!...原创 2020-06-18 20:58:32 · 130 阅读 · 0 评论 -
设计模式之策略模式
策略模式收银软件简单工厂实现1.抽象打折类2.创建打折实类返利收费普通收费打折收费3.创建工厂静态类(工厂只负责生产某一个东西)4.测试5.打印策略模式实现主要思想结构图具体实现测试打印PS:降低耦合性(策略和简单工厂的结合)收银软件面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象是抽象集合才是类简单工厂实现1.抽象打折类public abstract class CashSuper{ /// <summary> //原创 2020-06-17 21:59:13 · 297 阅读 · 0 评论 -
UML类图(动物的表述)
UML类图上节课(复习)UML视图中心对象:*动物*依赖关系第一级子对象:*鸟*组合关系(强拥有关系)第二级子对象:大雁聚合关系(弱拥有关系)接口方法第二级子对象:鸭子唐老鸭第二级子对象:企鹅关联关系上节课(复习)主要是简单工厂模式1.我们的简单工厂,只能生产一种东西,这是一个生产(小熊玩具)的工厂,那么就只能生产小熊玩具,这是个生产运算符号的工厂,那么就只能生产加减乘除!2.工厂生产的东西就是我们的父类,具体到某一只特定的对象,就是我们的子类!3.共性就是我们提炼出的方法,非共性就是我们单个对原创 2020-06-15 20:45:31 · 3383 阅读 · 0 评论 -
设计模式之简单工厂模式
简单工厂模式UML核心思想1.业务和界面分离2.面向对象的三大法则:封装,继承和多态具体实现1.继承2.多态虚方法重写简单工厂工厂的作用实验测试UML运算加法减法工厂运算加法减法工厂核心思想1.业务和界面分离如何分清业务逻辑和界面:一般显示在界面上的,我们肉眼可见的属于界面,而我们看不见的,内部运算属于业务逻辑对于一个加减运算来说:运算过程和法则---->业务逻辑界面---->我们的输入2.面向对象的三大法则:封装,继承和多态我们主要使用继承和多态来实现简单的加减运算,至于原创 2020-06-11 21:35:24 · 256 阅读 · 0 评论