设计模式
Storm-Shadow
愿君出走半生,归来时仍是少年
展开
-
简单工厂模式
一、简单工厂模式概述 简单工厂模式包含以下角色:1. Factory(工厂角色):它是工厂模式的核心,负责创建所有实例的内部逻辑;工厂类可以直接被外界调用,创建所需要的产品对象;可以在工厂类中提供静态的工厂方法,返回一个抽象产品类Product,所有的具体产品都是抽象产品的子类。2. Product(抽象产品角色):抽象产品角色是简单工厂模式所创建的所有对象原创 2014-11-13 00:17:13 · 958 阅读 · 0 评论 -
组合模式
一、组合模式概述 组合模式是用面向对象的方式来组合多个对象形成树形结构以表示“整体—部分”的结构层次,它对单个对象(叶子对象)和组合对象(容器对象)的操作具有一致性。其核心类是一个抽象类,通常这个类是整个模式中所有类的父类。下面是一个一般的文件目录树形结构图,组合模式就是用来操作管理类似的具有树形结构的对象组合的。在组合模式中有叶子构件和容器构件两种构件,叶子构件中不能包含成原创 2015-02-22 00:23:31 · 1153 阅读 · 0 评论 -
命令模式
一、 命令模式概述 命令模式定义:将一个请求封装为一个对象,使我们可以用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持撤销和恢复命令的操作。下面是一个典型的命令模式的类图。 命令模式引入命令对象,将发送者的请求封闭在命令对象中,再通过命令对象来调用接收者的方法,这样可以实现发送者和接收者的解耦。下面是一个典型的命令模式结构图从上边的类图中可以原创 2015-02-20 23:55:42 · 1996 阅读 · 0 评论 -
责任链模式
一、责任链模式概述责任链模式定义(Chainof Responsibility Pattren):避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。有时,可以处理某种请求的对象不止一个,而且随着请求的等级的不同,能够处理它的对象也不同。如在公司中,主任可以审批1万元以内的采购单,经理可以审批5万元以下的采购单原创 2015-02-04 22:29:07 · 960 阅读 · 0 评论 -
桥接模式
一、 桥接模式概述 在软件系统中,有些类具有两个或多个变化维度,如一个跨平台的日志记录类,它有多种日志输出方式(XML文件、数据库文件),同时还能支持多种操作系统。那么其输出方式就是一个变化维度,而支持的操作系统又是一个变化维度。那么我们如何来设计这样的一个类呢?我们可以定义两个类,一个日志类,它能够支持多种操作系统,另一个是输出方式类,它定义了多种输出方式。然后在日志类中定义一个输出方式类原创 2014-12-08 00:47:43 · 1038 阅读 · 0 评论 -
适配器模式
一、适配器模式概述在软件设计过程中,有时现在有的类可以满足客户类的功能需要,但是它所提供的接口不一定是客户类所期望的,这可能是因为现在有类中方法名与目标类中定义的方法名不一致等原因造成的。那么如何在不修改原有目标类和客户端代码的基础上确保能够使用现有类中的方法能被目标类使用呢?这就是适配器能够解决的问题。适配器模式可以将一个接口转换成客户希望的另一个接口,它使接口不兼容的那些类可以一起工作。原创 2014-11-27 00:03:07 · 811 阅读 · 0 评论 -
建造者模式
一、 建造者模式概述建造者模式用于创建一个包含多个组成部分的复杂对象,它可以返回一个完整的产品对象给用户。用户无须知道创建过程和内部组成细节,就可以直接创建一个完整的对象。现实世界中有很多复杂的对象,它们拥有很多组成部分,如电脑,它由主机、显示器、鼠标、键盘等组成。在软件开发过程中,也有很多和电脑一样复杂的对象,它们拥有一系列成员属性。在这些复杂对象中,可能存在一些限制条件,如某些属性没有原创 2014-11-19 00:16:52 · 1058 阅读 · 0 评论 -
工厂方法模式
一、工厂方法模式概述 在第二章的简单工厂模式中,只提供了一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它负责每一个产品子类的创建细节,并决定何时实例化哪一个产品类,当要将新产品加入到系统中时,必须修改工厂类,加入必要的处理逻辑,这违背了软件设计的开闭原则,而下面介绍的工厂方法模式将能很地解决这些问题。 工厂方法模式包含以下角色:1. 抽象产品(Product):原创 2014-11-14 00:14:37 · 935 阅读 · 0 评论 -
抽象工厂模式概述
一、抽象工厂模式概述 抽象工厂提供一个接口,通过该接口可以在不指定具体类的情况下,创建一系列相关的或相互独立的对象。抽象工厂模式是工厂方法模式的泛化版,工厂方法模式是一种特殊的抽象工厂模式。在工厂方法模式中,每一个具体工厂只能生产一种具体产品,而在抽象工厂方法模式中,每一个具体工厂可以生产多个具体产品。在抽象工厂模式中,有两个重要的概念:产品等级结构:产品等级结构是产品的继承结构,原创 2014-11-16 23:13:30 · 2319 阅读 · 0 评论 -
设计模式概述
一. 首先来概括一下面向对象设计的七大原则1. 单一职责原则(Single Responsibility Principle, SRP):类的职责要单一,不能将太多的职责放在一个类中。2. 开闭原则(Open-Closed Principle, OCP):软件实例对扩展是开放的,但是对修改是关闭的,即在不修改一个软件实体的基础上去扩展其功能。3. 里氏代原创 2014-11-12 00:58:18 · 752 阅读 · 0 评论 -
装饰模式
一、装饰模式概述 装饰模式动态地给一个对象增加一些额外的职责,它可以灵活地给对象增加新的功能,而且增加新功能时使用关联关系而不是继承关系,从而可降低系统的耦合度。需要装饰的具体构件类和具体装饰类可以独立的变化,从而可以动态的增加或删除对象的职责。通常我们可以通过继承机制或关联机制实现给类或对象增加新功能。但是继承是静态的,用户不能控制 增加功能的方式和时机。关联关系通过将一个类的对象嵌入另一原创 2015-06-24 16:02:42 · 695 阅读 · 0 评论