2013年4月10日

ios运行错误 -- 图片处理

摘要: 通常我们在程序里会添加很多图片作为背景或者活跃元素之类的,可是图片若处理的不好很影响程序的效果。近日很忙,没时间整图片了,先实现功能吧 ,就随便找了几张图片加载在程序里了,功能实现了,在模拟器上运行十分顺利,可是在真机上运行的时候却出了错误,关键不是这个错误,是其他的一切运行良好,只有图片显示不出来……呵呵,很明显,错误报告说找不到index.png这个文件,可是我们明明已经加载了这个图片了啊,怎么会找不到啊?问题是这个图片的后缀名。我自己随便找的这个图片的后缀名原来是.gif的,不知道什么时候改的.png,这一改给我的程序带来了不小的问题啊 。呵呵,可能你要问了,这是为什么呢?我们都知道,计 阅读全文

posted @ 2013-04-10 17:09 雨过晴空 阅读(174) 评论(0) 推荐(0) 编辑

设计模式 -- 适配器模式

摘要: 听见适配器这个字眼,应该不会陌生吧,生活中很常见也很容易听到这个东西---适配器。生活中适配器真的很多呢,比如说我们使用笔记本的电源适配器,中国提供的家庭;用电的电压是220v,而笔记本生产厂商如美国却不支持220V电压,所以要在中国使用美国产的笔记本电脑就必须要有电源适配器。就像是下图那个样子,你想使用一个已经存在的类,但是他的接口又不符合要求。1、什么是适配器模式? 适配器模式将一个类的接口抓换成客户希望的另一个接口。适配器让原本接口不兼容的类可以合作无间。适配器模式涉及三个重要角色: 目标:定义了客户端使用的与特定领域相关的接口。 被适配者:定义了已经存在的接口,这些接口需要被适配。 适 阅读全文

posted @ 2013-04-10 11:31 雨过晴空 阅读(213) 评论(0) 推荐(0) 编辑

2013年4月9日

设计模式 -- 命令模式

摘要: 1、什么是command命令模式? command命令模式是“封装方法调用”的一个模式,通过封装方法调用,把运算块封装成形。那么调用此运算的对象就不必深究事情是如何进行的,只需要知道可以使用这个包装成型的方法来完成它就可以了。因为它把运算封装,而不关心具体对象和实现,因此命令模式在我们的系统中有很多应用,如队列请求,日志请求,撤消操作等等。 “封装方法调用”也可以这样理解,命令模式把“命令的请求者”和“命令的执行者”解耦。这样一来,当命令请求者在请求一个命令时不必关心执行此命令的是哪个对象,这个对象怎么执行这个命令这些细节问题。要实现这两者之间的解耦,必然的要多出一个“中间处理者”——命令,我 阅读全文

posted @ 2013-04-09 16:16 雨过晴空 阅读(236) 评论(0) 推荐(0) 编辑

2013年4月6日

设计模式 -- 单例模式(多线程)

摘要: 上一节,我们给出了单例的最简单的实现,这一节我们将解决上一节提出的那个问题----多线程环境下如何运用单例?解决方案1、同步锁我们在创建对象之前,先加锁,这样创建对象的那部分部分代码就不会被两个线程执行了。代码:public class Singleton { private static Singleton uniqueInstance; private static readonly object syncRoot = new object();//同步锁 private Singleton() { } public stati... 阅读全文

posted @ 2013-04-06 21:00 雨过晴空 阅读(344) 评论(0) 推荐(0) 编辑

设计模式 -- 单例模式(单线程)

摘要: 单例模式算是设计模式里最简单的一个设计模式了,讨论学习它,我们不用研究设计原则。它就是一个简单的类结构,来看看吧。1、什么是单例模式? 单例模式确保一个类只有一个实例,并且提供一个全局的访问点。 也许你觉得一个类只能有一个实例简直就是浪费,可是有些情况,我们需要的就是只有一个实例的类,比如说线程池(threadpool),缓存(cache),对话框,处理偏好设置和注册表的对象,日志对象,充当打印机、显卡等设备的驱动器等。事实上,这些类对象只能有一个,如果实例化多个出来,就会导致许多问题产生,如:程序的行为异常,资源的使用过量,或者导致不一致的结果。2、单例模式如何实现? 我说了,单例模式是设计 阅读全文

posted @ 2013-04-06 20:41 雨过晴空 阅读(692) 评论(0) 推荐(0) 编辑

设计模式 -- 抽象工厂

摘要: 还记得吧?我们已经学完了简单工厂和工厂方法了,今天把“抽象工厂”学习完,那么我们的工厂模式就算学完了。1、什么是“抽象工厂”? 抽象工厂模式提供一个接口,用语创建相关或依赖对象的家族,而不需要明确指定具体类。这个概念还真是不好理解,没事,我们接着以例子来说明。 还是关于Pizza饼的故事。Pizza的做法(面团+酱汁+芝士)都是相同的,唯一的差别是他们使用的原料。由于各地区Pizza风味不同,原料使用上自然会有差别,有的地区会在原料上偷工减料,这样就会败坏Pizza长年以来的好名声。为了确保各地区Pizza质量,我们决定要建造一个工厂来生产原料,这个工厂将负责创建原料家族中每一种原料,也就是说 阅读全文

posted @ 2013-04-06 16:13 雨过晴空 阅读(213) 评论(0) 推荐(0) 编辑

2013年4月5日

设计模式 -- 工厂方法

摘要: 理解了简单工厂就不难理解工厂方法,工厂方法没有了“工厂”这个类,它是用抽象方法实现的,这就涉及到了“多态”。子类实现父类的抽象方法,也就是把“生产对象”这个职责从工厂中拿出来让具体类来实现。举个例子来说吧,有一个Pizza店,它有很多子类,有纽约风味的Pizza店,还有芝加哥风味的Piiza店,不同的Pizza店有cheesePizza,ClamPizza,VeggiesPizza,PepperoniPizza四种不同口味的Piiza.我们知道不同的风味的店在你不同的地区,而且一个风味的Pizza店只能点这中风味的Piiza。如果要用简单工厂来实现这个例子,那么在简单工厂的createPizz 阅读全文

posted @ 2013-04-05 17:20 雨过晴空 阅读(198) 评论(0) 推荐(0) 编辑

设计模式 -- 简单工厂

摘要: 工厂模式分为:简单工厂,工厂方法,抽象工厂三种模式,严格来说简单工厂不算是一种模式,反而比较像是一种编程习惯,由于比较常用,有些开发人员也把简单工厂看成是工厂模式。首先,所有工厂模式都是用来封装对象的创建的,这样一来,我们的对象创建就能“隐蔽”(你看不见new的过程)的进行,同时这也使得对象之间的依赖关系大大降低,也就符合了我们“低耦合”的设计原则。今天我们来看一下“简单工厂”这个非常好的编程习惯。1、什么是“简单工厂”? 简单工厂说白了就是把创建对象的过程分离出来。比如说我们实现一个能够进行简单加减乘除的计算器,那么你肯动能想到要有一个计算类,这个计算类应该有两个操作数和一个操作符,然后有. 阅读全文

posted @ 2013-04-05 16:26 雨过晴空 阅读(206) 评论(0) 推荐(0) 编辑

2013年3月30日

设计模式 -- 装饰者模式

摘要: 这个设计模式还是第一次使用,初次使用觉得特别设计特别别扭,还是要好好钻研一番,否则搞不好使用它会给你带来麻烦。1、什么是装饰者模式? 装饰者模式能够动态的将功能和职责添加到对象上。听起来觉得很不错呢,可是我们为什么要使用装饰者模式呢?用《Head First》的话说就是解决掉继承的滥用问题,前几个设计模式里我们都有提到“多用组合,少用继承”这个设计原则,这个模式里将继续讨论这个问题。通常我们想到扩展一个类的功能时,总是最先想到“继承”,继承有时候很好用,但是当设计很复杂的类关系时,继承的“黑暗面”会远远大于它的带来的便利。举个例子说奥迪汽车是个基类,这个类有很多它的子类,比如说,A1,A4,A 阅读全文

posted @ 2013-03-30 10:58 雨过晴空 阅读(354) 评论(0) 推荐(0) 编辑

2013年3月27日

设计模式--观察者模式

摘要: 今日看了《Head First》一书中关于“观察者”模式的讲解,突然间了解到自己对“观察者”的了解很是肤浅。今天采取与策略模式相同的方法来学习观察者模式。1、什么是观察者模式?观察者模式又叫做“发布-订阅”模式,它定义了对象之间的一对多依赖关系,这样当一个对象的状态改变时,他的所有依赖者都会收到通知并自动更新。这种情景在我们的生活中很常见,比如订阅报纸,关注某人的微博等,你订阅了(或者关注了)什么报纸(什么人),在这个报纸到达报社(这个人发了微博有了更新)时都会给你送到(都会通知你)。这里所谓的“一”就是被观察者,我们习惯称它为“主题”(Subject),而“多”就是关心主题变化的一些“观察者 阅读全文

posted @ 2013-03-27 20:52 雨过晴空 阅读(211) 评论(0) 推荐(0) 编辑

导航