设计模式-创建型-单例模式

单例模式:对于类的单例模式设计,就是采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。
 单例模式有8种方式:
   1、饿汉式(静态常量)
   //2、饿汉式(静态代码块)
   3、懒汉式(线程不安全)
   4、懒汉式(线程安全,同步方法)
   5、懒汉式(线程安全

  • 0
  • 0
  • 阅读 ( 1634 )

设计模式-创建型-工厂模式

工厂设计模式:
   顾名思义,该模式是用来生产对象的。在面向对象的设计模式中,万物皆对象,若使用new来创建对象,就会对该对象产生强耦合,加入我们需要更换该对象,那么使用该对象的对象都需要进行修改,这显然违背了开闭原则(OCP)。如果我们使用工厂来产生对象,我们只需要与这个工厂打交道就可以了,无需关心具体的对象,达到解耦的目的。
   

  • 0
  • 0
  • 阅读 ( 1210 )

设计模式-创建型-抽象工厂模式

  前一章节,我们介绍了简单工厂模式以及工厂方法模式,但是这两种模式都存在一定的局限性,只能生产某一类型下的某一种产品,如果需求变更,同类型下出现了不同的产品,比如芝士披萨不仅有口味上的不同,同时存在外观上的不同。这种时候,工厂模式显然不再满足要求,该怎么办呢?于是我们想到DIP原则,它不正是为了解决这种情况而存在的吗?接下来我们来介

  • 0
  • 0
  • 阅读 ( 1490 )

设计模式-创建型-原型模式

引言:
   原型模式是什么?它是在什么场景下被提出的呢?本章节,我们将详细了解下原型模式。
   在软件系统中,当创建一个类的实例过程过于昂贵或复杂,并且我们需要创建多个这样类的实例时,如果我们通过new来创建类实例,这就会增加创建类的复杂度和创建过程与客户代码复杂的耦合度。如果采用工厂模式来创建这样的实例对象的话,随着产品类的不断

  • 0
  • 0
  • 阅读 ( 1471 )

设计模式-创建型-建造者模式

引言:
   无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、底盘、发动机、方向盘等各种部件。而对于大部分用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车。有的人说:抽象工厂模式不是用来生产产品的吗,我们使用它来解决不是可以了吗?貌似有一定

  • 0
  • 0
  • 阅读 ( 1386 )

设计模式六大原则

设计模式六大原则:
   1、单一职责原则(SingleResponsibilityPrinciple)
   2、历史替换原则(LiskovSubstitutionPrinciple)
   3、依赖倒置原则(DependenceInversionPrinciple)
   4、接口隔离原则(InterfaceSegregationPrinciple)
   5、迪米特法则(LawOfDemeter)//最少知道原则
   6、开闭原则(OpenClose

  • 0
  • 0
  • 阅读 ( 1040 )

设计模式-结构型-适配器模式

适配器模式(AdapterPattern):
   将某个类的接口转换成客户端期望的另一个接口表示,主要的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。如读卡器是作为内存卡和笔记本之间的适配器,需要将内存卡插入读卡器,再将读卡器插入笔记本,这样笔记本就可以读取内存卡了。
 适配器模式的主要角色:
   
   1、目标接口(Target)

  • 0
  • 0
  • 阅读 ( 1027 )

设计模式

  没有什么设计模式是完美无缺的,一个设计模式就是解决一类的问题,通常设计模式在解决一类问题的同时,还会带来别的问题,我们设计者要做的事,就是扬长避短。
 1、创建型设计模式,5个===》关注对象的创建
 2、结构型设计模式,7个===》关注类与类之间的关系
 3、行为设计模式,11个====》关注对象和行为的分离
   设计模式六大原则:单一职责、里氏

  • 0
  • 0
  • 阅读 ( 1430 )

设计模式之单例模式

单例模式的好处:
   单例模式的好处就是单例,就是全局唯一的一个实例,应对一些特殊情况,比如数据库连接池(内置了资源)全局唯一奥玛生成器,单例可以避免重复创建,但是也会常驻内存,除非真的有必要,否则不要用单例模式。
 单例模式:
   1、构造函数私有化,避免别人还去new
   2、公开的静态方法提供对象实例
   3、初始化一个静态

  • 0
  • 0
  • 阅读 ( 1391 )

设计模式-原型模式

单例的基础上升级了一下,把对象从内存层面复制了一下,然后返回。是个新对象,但是又不是new出来的。
 
 ///<summary>
 ///原型模式:单例的基础上升级了一下,把对象从内存层面复制了一下,然后返回
 ///是个新对象,但是又不是new出来的
 ///</summary>
 publicclassPrototype
 {
 ///<summary>
 ///构造函数耗时耗资源

  • 0
  • 0
  • 阅读 ( 1254 )

设计模式-抽象工厂

抽象工厂:创建对象,创建一组密不可分的对象
 创建产品簇,多个对象是个整体,不可分割
 工厂+约束
 倾斜的可扩展性设计,增加产品很麻烦
 
 ///<summary>
 ///一个工厂负责一些产品的创建
 ///产品簇
 ///单一职责就是创建完整的产品簇
 ///
 ///继承抽象类后,必须显式的override父类的抽象方法
 ///</summary>
 publicabstra

  • 0
  • 0
  • 阅读 ( 1009 )

设计模式-适配器模式

适配器模式:解决重构的问题,新东西和旧系统不吻合,通过组合/继承进行配
 适配器:插座,电源适配器,做个转接的
 程序员已经确定好规范IHelper,新增了一个RedisHelper----第三方,二者规范不一致,就是没实现接口
 
 ///<summary>
 ///数据访问接口
 ///</summary>
 publicinterfaceIHelper
 {
 voidAdd<T>();&#1

  • 0
  • 0
  • 阅读 ( 939 )

设计模式-代理模式

通过代理完成对业务类的访问,包一层方便人以功能扩展。
 代理模式:VPN代理,翻墙代理,火车票代理等。
 通过代理业务类去完成对真实业务类的调用,代理类不能扩展业务功能,在不修改RealSubject前提下,插入功能。
 包一层:没有什么技术问题是包一层解决不了的,如果有,那么就再包一层。比如来个日志记录,可以避免修改业务类,只需要修改代理类。在来个

  • 0
  • 0
  • 阅读 ( 1456 )

设计模式-观察者设计模式

一个对象的动作触发多个对象的行为,通过观察者可以去掉对象的依赖,支持各种自定义和扩展。
 观察者模式,还要从那只申请的猫开始说起。
 猫叫一声之后触发:
   BabyCry()、BrotherTrun()、DogWang()、FatherRoar()、MothorWhisper()、MouseRun()、NeighbourAwake()、StealerHide().......
 下面代码是这些触发类:
 
 publicclassBaby
 {&

  • 0
  • 0
  • 阅读 ( 1040 )

设计模式-责任链设计模式

责任链设计模式,是行为型设计模式的巅峰之作。
 现在有一个场景,请假申请。请假时间的长短,需要不同级别的领导才能审批。
 万物皆对象嘛,请假需要工号、姓名、原因、时长、结果等等,那我们来定义一个请假的类。其实其就是一个上下文环境(Context),保存业务处理中参数-----中间结果-----最终结果。行为型设计模式重用的标配,把行为转移。
 
 publiccla

  • 0
  • 0
  • 阅读 ( 880 )

设计模式-结构型-代理模式

代理模式(Proxy):
   代理模式就是给某一个对象提供一个代理,并由代理对象控制对原有对象的引用。在一些情况下,一个客户不想或者不能直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。例如windows桌面端的快捷方式就是一个代理。
 代理模式按照使用目的可以分为:
   1)远程代理:为一个位于不同的地址空间的对象提供一个

  • 0
  • 0
  • 阅读 ( 1446 )

设计模式-结构型-桥接模式

桥接模式(Bridge):
   桥接是用于把抽象化与实现化解耦,使得两者可以独立变化。
 桥接模式的角色:
    
   1)抽象化角色(Abstraction):它是用于定义抽象接口,通常是抽象类而不是接口,其中定义了一个Implementor(实现接口)类型的对象并可以维护该对象,它与Implementor之间具有关联关系。
   2)改善后的抽象化角色(RefinedAbstraction):通常是具

  • 0
  • 0
  • 阅读 ( 1395 )

设计模式-结构型-装饰者模式

装饰者模式(wrapper):
   允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰器模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。
 示例:英雄学习技能 
 
 1publicclassProgram
 2{
 3privatestaticvoidMain(string[]args)
 4{
 5//选择英雄
 6He

  • 0
  • 0
  • 阅读 ( 1367 )

通俗易懂设计模式解析——模板方法模式

前言
   我们学习了解完了创建型设计模式和结构型设计模式,今天我们开始学习并了解行为型设计模式。今天我们首先来看这么一个设计模式——模板方法模式。这个模式我们在平常开发中总会不自觉的使用到。就像我们平时一样的各种网站模板、建立模板、PPT模板等等。啥意思呢?简单,也就是把共同的东西拿出来,你需要具体去实现你自己的那么就另外加上自己的

  • 0
  • 0
  • 阅读 ( 1110 )

设计模式 - 七大设计原则(一)

设计模式-七大设计原则(一) 概述 简单介绍一下七大设计原则: 开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭 依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体 单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化 接口隔离原则:使用多个专门的接口,而不是使用一个总接口 迪米特法则(最少知道原则):只和朋友交流(成

  • 0
  • 0
  • 阅读 ( 1146 )