2014年3月4日

Block

摘要: 定义block:typedef void (^Block_name)(NSString *arg);定义block 阅读全文

posted @ 2014-03-04 16:24 亦諾 阅读(88) 评论(0) 推荐(0) 编辑

2013年11月27日

单例模式

摘要: 单例模式是Java中最常用的模式之一,它通过阻止外部实例化和修改,来控制所创建的对象的数量。这个概念可以被推广到仅有一个对象能更高效运行的系统,或者限制对象实例化为特定的数目的系统中。例如:私有构造函数-其他类不能实例化一个新的对象。私有化引用-不能进行外部修改。公有静态方法是唯一可以获得对象的方式一个国家只能有一位总统(可能在正常情况下)。所以不管任何时候我们需要一位总统,使用AmericaPresident就能返回一个。getPresident()方法将确保只有一个总统对象被创建。否者,就不妙了 1 public class AmericaPresident { 2 3 priv... 阅读全文

posted @ 2013-11-27 17:07 亦諾 阅读(111) 评论(0) 推荐(0) 编辑

2013年11月19日

super && this

摘要: this当前类对象super父类对象在子类访问父类的成员和行为时,必须受类继承规则的约束在构造函数中,如果第一行没有写super(),编译器会自动插入。但是如果父类没有不带参数的构造函数或者这个构造函数私有化了(private修饰),你就必须加入对父类的实例化构造。this没有这个要求,因为它本身就进行实例化的构造在方法中,super和this使用的方法差不多,super要考虑是否能访问其父类的资源 阅读全文

posted @ 2013-11-19 16:22 亦諾 阅读(105) 评论(0) 推荐(0) 编辑

2013年11月18日

equals与”==”

摘要: equals()和“==”操作用于对象的比较,检查俩对象的相等性,但是他们俩的主要区别在于前者是方法后者是操作符。由于java不支持操作符重载(overloading),“==”的行为对于每个对象来说与equals()是完全相同的,但是equals()可以基于业务规则的不同而重写(overridden )。另一个需要注意的不同点是“==”习惯用于原生(primitive)类型之间的比较,而equals()仅用于对象之间的比较。同时初学者奋力地想找到什么时候使用等号操作“==”,什么时候使用equals方法。这篇教程中你将将看到equals()方法和“==”操作是如果工作的、他们之间有什么不同、 阅读全文

posted @ 2013-11-18 17:38 亦諾 阅读(130) 评论(0) 推荐(0) 编辑

适配器模式

摘要: 适配器模式在现代的Java框架中十分常用。这种模式适用于以下场景:想使用一个已存在的类,但是该类不符合接口需求;或者需要创建一个可重用的类,适配没有提供合适接口的其它类。适配器的思想可以通过下面这个简单的例子说明。这个示例要让一个桔子被“适配”成一个苹果。从图中下半部分可以看到,适配器包含了一个桔子实例并且继承了苹果类。桔子对象被包装了一个适配器,于是桔子表现得就像苹果一样了。适配器模式类图适配器模式示例代码class Apple { public void getAColor(String str) { System.out.println("Apple color is... 阅读全文

posted @ 2013-11-18 17:26 亦諾 阅读(135) 评论(0) 推荐(0) 编辑

工厂模式

摘要: 工厂模式是根据不同的参数创建对象。例如用工厂创建人。 如果我们想要一个男孩,工厂就会为我们生产一个男孩;如果我们需要一个女孩,工厂则会为我们生产一个女孩。工厂会根据不同的参数,为我们提供不同的物品。工厂模式类图工厂模式示例代码interface Human { public void Talk(); public void Walk();} class Boy implements Human{ @Override public void Talk() { System.out.println("Boy is talking..."); ... 阅读全文

posted @ 2013-11-18 17:13 亦諾 阅读(83) 评论(0) 推荐(0) 编辑

抽象工厂模式

摘要: 抽象工厂模式是在工厂模式的基础上增加的一层抽象概念。如果比较抽象工厂模式和工厂模式,我们不难发现前者只是增加了一层抽象的概念。抽象工厂是一个父类工厂,可以创建其它工厂类。故我们也叫它“工厂的工厂”。抽象工厂类图抽象工厂示例代码interface CPU { void process();} interface CPUFactory { CPU produceCPU();} class AMDFactory implements CPUFactory { public CPU produceCPU() { return new AMDCPU(); }} cl... 阅读全文

posted @ 2013-11-18 17:10 亦諾 阅读(101) 评论(0) 推荐(0) 编辑

桥接模式

摘要: 简单来讲,桥接模式是一个两层的抽象。桥接模式是用于“把抽象和实现分开,这样它们就能独立变化”。 桥接模式使用了封装、聚合,可以用继承将不同的功能拆分为不同的类。电视和遥控器(图中有错字)是一个完美展示两层抽象的例子。你有一个电视机的接口,还有一个遥控器的抽象类。我们都知道,将它们中任何一个定义为一个具体类都不是好办法,因为其它厂家会有不同的实现方法。桥接模式示例代码// 定义电视机的接口 ITVpublic interface ITV { public void on(); public void off(); public void switchChannel(int ch... 阅读全文

posted @ 2013-11-18 17:03 亦諾 阅读(121) 评论(0) 推荐(0) 编辑

建造者模式

摘要: 建造者模式的关键特性是它将一个建造过程分解成很多步骤,也可以说,每个产品的建造会遵循同样的流程,不过流程内的每一个步骤都不尽相同。定义一个叫作星巴克饮料机(StarbucksBuilder)的机器,用于制造星巴克饮料。StarbucksBuilder要经过很多步骤来做一杯饮料,比如buildSize() 和 buildDrink(),并且最终返回制成的饮料。建造者模式类图建造者模式示例代码 1 // 待构建产品 2 class Starbucks { 3 private String size; 4 private String drink; 5 6 public v... 阅读全文

posted @ 2013-11-18 16:54 亦諾 阅读(121) 评论(0) 推荐(0) 编辑

原型模式

摘要: 原型模式被用在频繁调用且极其相似的对象上。原型模式会克隆对象并设置改变后的属性。原型模式消耗的资源较少。这其中原因何在?原型模式类图:原型模式示例代码: 1 //原型 2 interface Prototype { 3 void setSize(int x); 4 void printSize(); 5 } 6 // 一个具体类 7 class A implements Prototype, Cloneable { 8 private int size; 9 public A(int x) {10 this.size = x;11 }1... 阅读全文

posted @ 2013-11-18 16:40 亦諾 阅读(84) 评论(0) 推荐(0) 编辑

导航