自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 适配器模式

一、定义适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 二、适配器模式结构图 适配器模式中的角色:目标(Target)角色:目标接口,系统所期待实现的目标。源(Adapee)角色:当前已经存在的原有的实现类,即将被适配的类。适配器(Adaper)角色:将原有实现转...

2018-12-31 09:08:18 205

原创 状态模式

一、定义状态模式(State):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 二、模式结构图状态模式中的角色:环境(Context)角色:也称为上下文,他定义了客户感兴趣的接口,维护一个当前状态,并将与状态相关的操作委托给当前状态对象来处理。抽象状态(State)角色:定义了一个接口,用以封装环境对象中的特定状态所对应的行为。具体状态(C...

2018-12-29 08:47:30 136

原创 抽象工厂模式

一、定义抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式属于对象创建型模式。二、模式简介模式动机:在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时候我们需要一个...

2018-12-27 19:35:39 166

原创 观察者模式

一、定义观察者模式(Observer Pattern):定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式的别名包括发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式是一种对象行为型模式。...

2018-12-27 11:23:07 147

原创 建造者模式

一、定义建造者(Builder)模式: 又名生成器模式,是一种对象构建模式。指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分都是可以灵活选择的。 二、建造者模式结构和实例建造者模式由产品、抽象建造者、具体建造者、指挥者等4个要素构成。...

2018-12-25 10:26:11 77

原创 外观模式

一、定义外观模式(Facade Pattern):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。外观模式是迪米特法则的具体实现,通过引入一个新的外观角色可以降低原有系统的复杂度,同时降低客户类与子系统的耦合度。 二、外观模式结构图外观模式包含两个角色:(1)外观角色(...

2018-12-23 10:39:03 102

原创 迪米特法则

一、定义迪米特法则,也叫最少知识原则(LoD),如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。通俗的来讲,就是一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。迪米特法则还有一...

2018-12-22 10:07:24 1825

原创 模板方法模式

一、定义模板方法模式(Template Method Pattern):定义了一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法是一种类行为型模式。 二、模式动机模板方法模式是基于继承的代码复用基本技术,模板方法模式的结构和用法也是面向对象设计的核心之一。在模板方法模式中,可以将相同的代码放在父类中,而将...

2018-12-21 10:16:44 167

原创 原型模式

一、定义用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。无须知道任何创建的细节。 原型模式的基本工作原理是通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝原型自己来实现创建过程。 二、原型模式结构(1)Prototype(抽象原型类):声明克隆方法的接口,是所有具体原型类的公共父类,它可是抽象类也可以是接口,甚至可以是具体实...

2018-12-20 16:55:29 145

原创 工厂方法模式

一、概念工厂方法模式又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂模式(Polymorphic Factory),在工厂方法模式中,父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,这样做的目的是将类的实例化操作延迟到子类中完成,即由子类来决定究竟应该实例化(创建)哪一个类。工厂方式法模式(Factory Method),定义了一个用于创建...

2018-12-15 17:53:29 106

原创 代理模式(Proxy)

一、定义代理模式给某一个对象提供一个代理对象,并由代理对象控制对原有对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。 二、结构(1)Subject 抽象主题角色(共同接口)可以是抽象类或者接口,是一个最普通的业务类型定义,无特殊要求。public interface Subject { //定义一个方法 public void request(...

2018-12-14 11:24:42 148

原创 装饰模式

一、定义装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 二、为什么使用这个模式以对客户透明的方式动态地给一个对象附加上更多的责任,装饰模式可以在不需要创造更多的子类的情况下,将对象的功能加以扩展。1. 需要扩展一个类的功能,或给一个类添加附加职责。2. 需要动态的给一个对象添加功能,这些功能可以再动态的撤销。...

2018-12-13 11:36:47 87

原创 依赖倒转原则(Dependence Inversion Principle、DIP)

一、概念依赖倒转原则(依赖倒置原则)的原始定义是:High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon ab...

2018-12-12 20:20:21 649

原创 里氏代换原则(Liskov Substitution Principle、LSP)

一、概念氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。  简单的理...

2018-12-12 19:16:58 582

原创 开放-封闭原则(The Open-Closed Principle 、OCP)

一、概念软件实体(模块、类、函数等)应该可以扩展,但是不可以修改。也就是说软件对扩展开放,对修改封闭。需要说明的是,对修改关闭不是说软件设计不能做修改,只是尽量不要做不必要的修改。怎么才能做到呢?那就是有相应的扩展性。其实,软件有相应的扩展性是好处,但是不能说每个地方都有扩展。反而造成了代码的臃肿。所以这里的扩展与修改关闭是有限制的。开闭原则,可以说是其他五大原则的实现,也是面向对象设计的...

2018-12-12 15:33:53 119

原创 单一职责原则(Single Responsibility Principle,SRP)

一、单一职责原则核心思想一个类应该有且只有一个变化的原因。 二、为什么引入单一职责原则单一职责原则将不同的职责分离到单独的类,每一个职责都是一个变化的中心。  在SRP中,把职责定义为变化的原因。当需求变化时,将通过更改职责相关的类来体现。如果一个类拥有多于一个的职责,则多个职责耦合在一起,会有多于一个原因来导致这个类发生变化。一个职责的变化可能会影响到其他的职责,另外,把多个...

2018-12-11 10:43:33 312 1

原创 策略模式

一、策略模式定义策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 二、策略模式的结构策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来...

2018-12-11 10:26:47 120

原创 简单工厂模式(静态工厂模式)

一、模式分析将对象的创建和对象本身业务处理分离可以降低系统的耦合度,使得两者修改起来都相对容易。在调用工厂类的工厂方法时,由于工厂方法是静态方法,使用起来很方便,可通过类名直接调用,而且只需要传入一个简单的参数即可,在实际开发中,还可以在调用时将所传入的参数保存在XML等格式的配置文件中,修改参数时无须修改任何源代码。简单工厂模式最大的问题在于工厂类的职责相对过重,增加新的产品需要修改工...

2018-12-11 09:59:19 235 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除