码迷,mamicode.com
首页 > 移动开发 > 详细

Android常用设计模式

时间:2016-02-18 13:28:00      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

java有23中设计模式,Android中也用到了很多的设计模式,本篇就来介绍Android中常用的几种设计模式

一、普通工厂设计模式

普通工厂设计模式,就是创建一个工厂类负责创建对象 ,用户根据需求来从工厂类中获取自己想要的产品。这里涉及到的三个

词分别是:工厂 、产品和用户;这里要说明的是产品是有共同特征的,把共同特征提取出来生成一个接口,所有的产品都去实现这个接口

然后工厂类负责创建这些产品,用户需要什么产品去工厂类里获取;

代码实现如下:

产品共同特征接口

/**
 * 产品共同特征接口
 * 
 * @author jiaocg
 * 
 */
public interface MyProduct {
    // 有什么共同特征都可以在这里定义
    public void createProduct(String product);
}

苹果类

1 public class Apple implements MyProduct {
2 
3     @Override
4     public void createProduct(String product) {
5         System.out.println("我是苹果");
6     }
7 
8 }

梨类

1 public class Pear implements MyProduct {
2 
3     @Override
4     public void createProduct(String product) {
5         System.out.println("我是梨");
6     }
7 }

工厂类

 1 /**
 2  * 工厂类
 3  * 
 4  * @author jiaocg
 5  * 
 6  */
 7 public class ProductFactory {
 8 
 9     public MyProduct getProduct(String puduct) {
10         if ("苹果".equals(puduct)) {
11             return new Apple();// 要苹果就返回苹果
12         }
13         return new Pear();// 要梨就返回梨
14     }
15 }

使用工厂类

1 ProductFactory productFactory = new ProductFactory();
2 // 我想要苹果
3 MyProduct apple = productFactory.getProduct("苹果");
4 // 我想要梨
5 MyProduct pear = productFactory.getProduct("梨");

 

二、抽象工厂设计模式

抽象工厂设计模式是对普通工厂设计模式的拓展,普通工厂设计模式的缺点是,如果有新的产品出现,我们就要修改工厂类,去添加新的产品,

这样破坏了程序封闭性原则,而抽象工厂设计模式则解决了这个问题。就是把工厂也独立出来,如上例说到的工厂类既可以创建苹果又可以创建梨

而抽象工厂就是一个工厂类只负责创建一个产品,因此就生成了单独的工厂,如苹果工厂只生成苹果,梨工厂只生产梨,你添加了新的产品,我就创建新

的工厂类;由于工厂被独立出来,又拥有共同的特性,所以要提取出来一个接口,所有的工厂都去实现这个接口;这就是抽象工厂设计模式;

代码示例如下:

苹果和梨对象还是上面的对象

我们首先提取工厂类接口

 1 /**
 2  * 工厂类接口
 3  * 
 4  * @author jiaocg
 5  * 
 6  */
 7 public interface MyFactory {
 8 
 9     public MyProduct createProduct();
10 }

苹果工厂

 1 /**
 2  * 苹果工厂
 3  * 
 4  * @author jiaocg
 5  * 
 6  */
 7 public class AppleFactory implements MyFactory {
 8 
 9     @Override
10     public MyProduct createProduct() {
11         return new Apple();
12     }

梨工厂

 1 /**
 2  * 梨工厂
 3  * 
 4  * @author jiaocg
 5  * 
 6  */
 7 public class PearFactory implements MyFactory {
 8 
 9     @Override
10     public MyProduct createProduct() {
11         return new Pear();
12     }

使用工厂创建对象

1 AppleFactory appleFactory=new AppleFactory();
2 // 我想要苹果
3 MyProduct apple = appleFactory.createProduct();
4         
5 PearFactory pearFactory=new PearFactory();
6 // 我想要梨
7 MyProduct pear = pearFactory.createProduct();

以上就是简单的抽象工厂设计模式,如果有新的产品出现,我们只需要去创建一个新的工厂类即可;

Android常用设计模式

标签:

原文地址:http://www.cnblogs.com/all88/p/5197648.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!