自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 8.桥接模式(Bridge)- 结构型模式

在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不同颜色的图形呢?如果用继承方式,m 种形状和 n 种颜色的图形就有 m×n 种,不但对应的子类很多,而且扩展困难。当然,这样的例子还有很多,如不同颜色和字体的文字、不同品牌和功率的汽车、不同性别和职业的男女、支持不同平台和不同文件格式的媒体播放器等。如果用桥接模式就能很好地解决这些问题。定义:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来

2021-08-07 23:04:15 135

原创 7.适配器模式(Adapter)

在现实生活中,经常出现两个对象因接口不兼容而不能在一起工作的实例,这时需要第三者进行适配。例如,讲中文的人同讲英文的人对话时需要一个翻译,用直流电的笔记本电脑接交流电源时需要一个电源适配器,用计算机访问照相机的 SD 内存卡时需要一个读卡器等。在软件设计中也可能出现:需要开发的具有某种业务功能的组件在现有的组件库中已经存在,但它们与当前系统的接口规范不兼容,如果重新开发这些组件成本又很高,这时用适配器模式能很好地解决这些问题。定义:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼

2021-08-07 11:58:59 125

原创 21.中介者模式 (Mediator)- 对象行为型模式

在现实生活中,常常会出现好多对象之间存在复杂的交互关系,这种交互关系常常是“网状结构”,它要求每个对象都必须知道它需要交互的对象。例如,每个人必须记住他(她)所有朋友的电话;而且,朋友中如果有人的电话修改了,他(她)必须告诉其他所有的朋友修改,这叫作“牵一发而动全身”,非常复杂。如果把这种“网状结构”改为“星形结构”的话,将大大降低它们之间的“耦合性”,这时只要找一个“中介者”就可以了。如前面所说的“每个人必须记住所有朋友电话”的问题,只要在网上建立一个每个朋友都可以访问的“通信录”就解决了。这样的例子

2021-08-07 01:34:34 150

原创 6.代理模式(ProxyPattern)- 对象创建型

在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保姆、找工作等都可以通过找中介完成。在软件设计中,使用代理模式的例子也很多,例如,要访问的远程对象比较大(如视频或大图像等),其下载要花很多时间。还有因为安全原因需要屏蔽客户端直接访问真实对象,如某单位的内部数据库等。定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问

2021-08-07 00:07:29 399

原创 1.单例模式(Singleton)

为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。单例模式(singleton)定义:指一个类只有一个实列,且该类能自行创建这个实列的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。在计算机系统中,还有 Windows 的回收站、操作系统中的文件系统、多线程中的线程池、显卡的驱动程序对象、打印机的后台处理服务、应用程序的日志对象、数据库的连接池、网站

2021-08-06 07:22:41 77

原创 2.原型模式(Prototype)

在有些系统中,存在大量相同或者相似对象的创建问题,如果用传统的构造函数来创建对象,复杂且耗资源,而用原型模式生成对象就比较高效。原型模式(Prototype):定义:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同的或者相似的新对象。原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。特点:优点:1、性能提高。 2、逃避构造函数的约束。3、向客户隐藏制造新实例的复杂性。4、动态增加和减少产品类缺点:1、需要为每一个类配备一个克..

2021-08-06 05:11:23 143

原创 puremvc框架

PureMVC是在基于模型、视图和控制器MVC模式建立的一个轻量级的应用框架。在PureMVC实现的经典MVC设计模式中,这三部分由三个单例模式类管理,分别是Model、View和Controller。三者合称为核心层或核心角色。Facade提供了与核心层通信的唯一接口,以简化开发复杂度。Model 与 ProxyModel保存对Proxy对象的引用,Proxy负责操作数据模型,与远程服务通信存取数据。这样保证了Model层的可移植性。V...

2021-08-01 00:52:09 180

转载 Addressable

Unity Addressables 系统在 Asset Bundle 之上,提供了异步加载,依赖管理以及内存管理等更加丰富的资源管理功能,也让开发者实现远程资源更新更加的便捷。但是,再灵活的系统设计也很难满足开发者各种应用场景的需求,比如,有的开发者希望能够定制 Catalog,有些开发者希望资源能够加密。为了达到某些特定需求,对 Addressables 系统进行适当的扩展也就在所难免。本文希望通过一个加密功能的实际案例来帮助大家更深入的理解 Addressables 系统,以及如何对其进行扩展。本

2021-05-29 09:07:28 635

原创 MVP框架

mvp的全称为Model-View-Presenter,Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。 MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。 在MVC模型里,更关注的Model...

2021-04-07 07:02:01 79

原创 MVC框架

MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。V即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操作的方式。M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关

2021-03-23 00:19:07 246

原创 9.装饰模式(Decorator)- 对象结构型模式

前言 上班族大多都有睡懒觉的习惯,每天早上上班时间都很紧张,于是很多人为了多睡一会,就会用方便的方式解决早餐问题。有些人早餐可能会吃煎饼,煎饼中可以加鸡蛋,也可以加香肠,但是不管怎么“加码”,都还是一个煎饼。在现实生活中,常常需要对现有产品增加新的功能或美化其外观,如房子装修、相片加相框等,都是装饰器模式。 在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。所有这些都可以釆用装饰器模式来实现。...

2021-03-05 00:32:50 93

原创 4.抽象工厂(AbstractFactory)

前言 前面介绍的工厂方法模式中考虑的是一类产品的生产,如畜牧场只养动物、电视机厂只生产电视机、计算机软件学院只培养计算机软件专业的学生等。 同种类称为同等级,也就是说:工厂方法模式只考虑生产同等级的产品,但是在现实生活中许多工厂是综合型的工厂,能生产多等级(种类) 的产品,如农场里既养动物又种植物,电器厂既生产电视机又生产洗衣机或空调,大学既有软件专业又有生物专业等。定义 是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就...

2021-03-02 23:34:16 97

原创 3.工厂方法(FactoryMethod) - 对象创建型模式

前言定义模式的结构与实现特点实现应用场景扩展

2021-03-02 23:25:47 74

原创 17.策略模式(Strategy) - 对象行为型

前言 在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以釆用打折、送商品、送积分等方法。 在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、插入排序、二叉树排序等。 定义 该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,...

2021-03-02 00:48:57 141

原创 5.建造者(Builder)-对象创建型模式

前言 在软件开发过程中有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成。例如,计算机是由 CPU、主板、内存、硬盘、显卡、机箱、显示器、键盘、鼠标等部件组装而成的,采购员不可能自己去组装计算机,而是将计算机的配置要求告诉计算机销售公司,计算机销售公司安排技术人员去组装计算机,然后再交给要买计算机的采购员。 生活中这样的例子很多,如游戏中的不同角色,其性别、个性、能力、脸型、体型、服装、发型等特性都有所差异;还有汽车中的方向盘、发动机...

2021-03-02 00:03:34 134

原创 10.外观(Facade)-对象结构型模式

前言定义模式的结构与实现特点应用场景扩展

2021-02-28 22:29:51 88

原创 18.责任链模式(Chain of Responsibility)- 对象行为型

前言 在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据自己要请假的天数去找不同的领导签名,也就是说员工必须记住每个领导的姓名、电话和地址等信息,这增加了难度。 在计算机软硬件中也有相关例子,如总线网中数据报传送,每台计算机根据目标地址是否同自己的地址相同来决定是否接收;还有异常处理中,处理程序根据异常的类型决定自己是否处理...

2021-02-28 11:45:14 115

原创 13.模板方法模式(Template Method) - 类行为型模式

前言 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。 例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。定义 ...

2021-02-26 00:04:48 101

原创 15.备忘录模式(Memento)

前言 每个人都有犯错误的时候,都希望有种“后悔药”能弥补自己的过失,让自己重新开始,但现实是残酷的。在计算机应用中,客户同样会常常犯错误,能否提供“后悔药”给他们呢?当然是可以的,而且是有必要的。这个功能由“备忘录模式”来实现。 其实很多应用软件都提供了这项功能,如 Word、记事本、Photoshop、Eclipse 等软件在编辑时按 Ctrl+Z 组合键时能撤销当前操作,使文档恢复到之前的状态;还有在 IE 中的后退键、数据库事务管理中的回滚操作、玩游戏时的中间结果存档功...

2021-02-21 10:24:36 40

原创 16.状态模式(State)- 对象行为型

前言: 在软件开发过程中,应用程序中的有些对象可能会根据不同的情况做出不同的行为,我们把这种对象称为有状态的对象,而把影响对象行为的一个或多个动态变化的属性称为状态。当有状态的对象与外部事件产生互动时,其内部状态会发生改变,从而使得其行为也随之发生改变。如人的情绪有高兴的时候和伤心的时候,不同的情绪有不同的行为。再比如:游戏中Enemy会根据和玩家的距离或者其他条件,使其动作状态发生改变,从而改变其行为。 对这种有状态的对象编程,传统的解决方案是:...

2021-02-01 07:39:59 162

原创 22.观察者模式(Observer)- 对象行为型模式

前言: 在现实世界中,许多对象并不是独立存在的,其中的一个对象的行为发生变化可能会导致一个或者多个其他对象的行为发生变化。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。这样的例子还有很多,例如,股票价格与股民、微信公众号与微信用户、气象局的天气预报与听众、小偷与警察等。 在软件世界也是这样,例如,Excel 中的数据与折线图、饼状图、柱状图之间的关系;MVC 模式中的模型与视图的关系;事件模...

2021-01-31 11:15:37 184

转载 NGUI 中用代码给UILable中的字符串上色

添加 UILable 组件后,对 UILable 中的 text 上颜色;可以在编辑窗口中直接加上 “ [ 16进制颜色表示方式] [ - ]”;添加这对标识,即可对句子中任意的字上色;如:[ffee00]  damage  [-]     ------>  最终显示的 damage 就为16进制 "ffee00" 所对应的颜色,这个颜色是可以任意调节的......如图:     

2016-01-26 21:43:07 299

转载 unity3d之Invoke()等相关函数的研究

Invoke() 方法是 Unity3D 的一种委托机制如: Invoke("SendMsg", 5);   它的意思是:5 秒之后调用 SendMsg() 方法;使用 Invoke() 方法需要注意 3点:1 :它应该在 脚本的生命周期里的(Start、Update、OnGUI、FixedUpdate、LateUpdate)中被调用;2:Invoke(); 不能接受含有 参数的方

2016-01-26 20:50:47 707

转载 unity3d两种播放视频的方式

在Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上。第二种是在GUI层面上播放视频。播放视频其实和贴图非常相像,因为播放视频用到的MovieTexture属于贴图Texture的子类,那么本章我们就好好学习一下Unity中播放视频的这两种方式。  Unity支持的播放视频格式有.mov、.mpg、.m

2016-01-26 15:46:31 13101

转载 unity3d之刚体碰撞器和触发器的一些知识

刚体(Rigidbody)的官方(摘自Unity3d的官方指导书《Unity4.x从入门到精通》)解释如下:Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可接受外力与扭矩力用来保证游戏对象像在真实世界中那样进行运动。任何游戏对象只有添加了刚体组件才能受到重力的影响,通过脚本为游戏对象添加的作用力以及通过NVIDIA物理引擎与其他的游戏对象发生互动的运算都需要游戏对

2016-01-24 10:47:23 5571 3

转载 Unity3d之NGUI制作技能冷却

代码如下:using UnityEngine;using System.Collections;public class Skill_Cooling: MonoBehaviour {public UISprite sprite;bool state = false;// Use this for initializationvoid Start () {

2016-01-15 14:04:44 368

IOS越狱配件集合

有需要的可以下下来看看,里面包含了许多好的压缩包,难求的资源,很有帮助的哦

2015-10-13

AssestBundle

用于unity3d资源打包方便快捷,很实用的一个unitypackage

2015-09-07

socket编程Demo

socket网络编程适用于学习socket的同学们

2015-09-07

QQ界面高仿

最近学习做Android开发,参照网上的视频和其他的资料的学习,做了个高仿QQ仅用于初学者学习交流使用

2015-07-06

unity3D教程

对于Unity3D初学者很有帮助,文档较为详细的介绍了Unity3D的基本使用,并且用中文描述,更容易理解,并且关键部分还用特殊颜色的线条加以标注,很值得下载学习

2013-06-29

空空如也

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

TA关注的人

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