自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (5)
  • 收藏
  • 关注

原创 <设计模式可复用面向对象软件的基础> [3.10]、模板(C#)

模板模式在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。介绍意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。主要解决:一些方法通用,却在每一个子类都重新...

2017-10-24 23:45:25 462

原创 <设计模式可复用面向对象软件的基础> [3.9]、策略(C#)

策略模式在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。介绍意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况...

2017-10-24 23:37:59 404

原创 <设计模式可复用面向对象软件的基础> [3.2]、命令(C#)

命令模式命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。介绍意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但...

2017-10-24 10:19:58 308

原创 <设计模式可复用面向对象软件的基础> [3.1]、职责链(C#)

责任链模式顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。介绍意图:避免请...

2017-10-18 22:51:43 287

转载 深入浅出UML类图

在UML 2.0的13种图形中,类图是使用频率最高的UML图之一。Martin Fowler在其著作《UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition》(《UML精粹:标准对象建模语言简明指南(第3版)》)中有这么一段:“If someone were to come up to

2017-10-16 17:38:14 425

原创 <设计模式可复用面向对象软件的基础> [2.5]、外观模式(C#)

一、引言在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ”门面“模式。下面就具体介绍下外观模式。二、外观模式的详细介绍2.1 定义外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。使用外观模...

2017-10-16 00:14:32 307

原创 <设计模式可复用面向对象软件的基础> [2.7]、代理模式(C#)

一、引言在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象,然后客户端只需要访问代理对象,由代理对象去帮我们去请求目标对象并返回结果给客户端,这样的一个解决思路就是今天要介绍的代理模式。二、代理模式的详细介绍代理模式按照使用目的可...

2017-10-16 00:11:31 283

原创 <设计模式可复用面向对象软件的基础> [2.6]、享元模式(C#)

一、引言在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严重,然而享元模式可以解决这个问题,下面具体看看享元模式是如何去解决这个问题的。二、享元模式的详细介绍在前面说了,享元模式可以解决上面的问题了,在介绍享元模式之前,让我们先要分析下如果去解...

2017-10-16 00:09:27 245

原创 <设计模式可复用面向对象软件的基础> [2.3]、组合模式(C#)

一、引言在软件开发过程中,我们经常会遇到处理简单对象和复合对象的情况,例如对操作系统中目录的处理就是这样的一个例子,因为目录可以包括单独的文件,也可以包括文件夹,文件夹又是由文件组成的,由于简单对象和复合对象在功能上区别,导致在操作过程中必须区分简单对象和复合对象,这样就会导致客户调用带来不必要的麻烦,然而作为客户,它们希望能够始终一致地对待简单对象和复合对象。然而组合模式就是解决这样的问题。...

2017-10-15 23:45:34 252

原创 <设计模式可复用面向对象软件的基础> [2.4]、装饰者模式(C#)

一、引言在软件开发中,我们经常想要对一类对象添加不同的功能,例如要给手机添加贴膜,手机挂件,手机外壳等,如果此时利用继承来实现的话,就需要定义无数的类,如StickerPhone(贴膜是手机类)、AccessoriesPhone(挂件手机类)等,这样就会导致 ”子类爆炸“问题,为了解决这个问题,我们可以使用装饰者模式来动态地给一个对象添加额外的职责。下面让我们看看装饰者模式。二、装饰者模式...

2017-10-15 13:16:35 267

原创 <设计模式可复用面向对象软件的基础> [2.2]、桥接模式(C#)

一、引言这里以电视遥控器的一个例子来引出桥接模式解决的问题,首先,我们每个牌子的电视机都有一个遥控器,此时我们能想到的一个设计是——把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现,其他具体电视品牌的遥控器都继承这个抽象类,具体设计类图如下:这样的实现使得每部不同型号的电视都有自己遥控器实现,这样的设计对于电视机的改变可以很好地应对,只需要添加一个派生类就搞定了,但随着时间的推移,...

2017-10-15 12:36:11 305

原创 <设计模式可复用面向对象软件的基础> [2.1]、适配器模式(C#)

一、引言“将现存的对象”在新的环境中进行调用呢?解决这个问题的办法就是我们本文要介绍的适配器模式——使得新环境中不需要去重复实现已经存在了的实现而很好地把现有对象(指原来环境中的现有对象)加入到新环境来使用。二、适配器模式的详细介绍2.1 定义 适配器模式——把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。适配器模式有类的适配...

2017-10-15 12:26:31 359

原创 <设计模式可复用面向对象软件的基础> [1.4]、原型(C#)

一、引言在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中分配了多个一样的类实例对象,然后如果采用工厂模式来创建这样的系统的话,随着产品类的不断增加,导致子类的数量不断增多,反而增加了系统复杂程度,所以在这里使用工厂模式来封装类创建过程并不合适,然而...

2017-10-13 18:47:59 284

原创 <设计模式可复用面向对象软件的基础> [1.2]、建造者(C#)

一、引言  在软件系统中,有时需要创建一个复杂对象,并且这个复杂对象由其各部分子对象通过一定的步骤组合而成。例如一个采购系统中,如果需要采购员去采购一批电脑时,在这个实际需求中,电脑就是一个复杂的对象,它是由CPU、主板、硬盘、显卡、机箱等组装而成的,如果此时让采购员一台一台电脑去组装的话真是要累死采购员了,这里就可以采用建造者模式来解决这个问题,我们可以把电脑的各个组件的组装过程封装到一个建...

2017-10-13 18:46:24 301

原创 <设计模式可复用面向对象软件的基础> [1.1]、抽象工厂(C#)

一、引言在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码),而工厂方法模式每个具体工厂类只完成单个实例的创建,所以它具有很好的可扩展性。但是在现实生活中,一个工厂只创建单个产品这样的例子很少,因为现在的工厂都多元化了,一个工厂创建一系列的产品,如果我们要设计这样的系统时,工厂方法模式显然在这里不适用,然...

2017-10-13 18:43:01 347

原创 <设计模式可复用面向对象软件的基础> [1.3]、工厂方法(C#)

工厂方法模式的实现  工厂方法模式之所以可以解决简单工厂的模式,是因为它的实现把具体产品的创建推迟到子类中,此时工厂类不再负责所有产品的创建,而只是给出具体工厂必须实现的接口,这样工厂方法模式就可以允许系统不修改工厂类逻辑的情况下来添加新产品,这样也就克服了简单工厂模式中缺点。下面看下工厂模式的具体实现代码(这里还是以简单工厂模式中点菜的例子来实现):namespace 设计模式之...

2017-10-13 18:35:18 312

原创 <设计模式可复用面向对象软件的基础> [1.5]、单例(C#)

一、引言最近在设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二同时可以给一些初学设计模式的朋友一些参考。首先我介绍的是设计模式中比较简单的一个模式——单例模式(因为这里只牵涉到一个类)二、单例模式的介绍说到单例模式,大家第一反应应该就...

2017-10-13 10:48:54 314

原创 <设计模式可复用面向对象软件的基础>模式归类

全书讨论共23种设计模式,分成三大类1、创建模式(创建型模式抽象了实例化过程)1.1、抽象工厂(abstract factory)意图提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。适用性一个系统要独立于它的产品的创建、组合和表示时。一个系统要由多个产品系列中的一个来配置时。当你要强调一系列相关的产品对象的设计以便进行联合使用时。•当你提...

2017-10-13 10:07:05 449

原创 有限状态机设计

BaseFSM:状态机using UnityEngine;using System.Collections;public class BaseFSM : MonoBehaviour { public BaseState currentState = null; public StateID currentStateId = StateID.None; pub

2017-10-12 14:56:28 1759

位图字体生成工具

位图字体生成工具 ugui 、 ngui 自定义字体,美术字、、、

2018-08-13

Unity3D 插件NGUI Next Gen UI 3.9.9and3.6.8 两个版本

Unity3D 插件NGUI Next Gen UI 3.9.9and3.6.8 两个版本了

2017-12-06

云风pbc windows下xx.proto生成xx.pb 工具

云风pbc windows下xx.proto生成xx.pb 工具 .proto放置同级目录,双击.bat文件生成pb

2017-12-04

C#Zip库文件

C# Zip 解压 压缩 库文件 在C#环境,Unity3d开发中常用的工具

2017-12-04

splite3_x64.dll

splite3_x64.dll

2016-11-18

空空如也

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

TA关注的人

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