Android设计模式之工厂模式

时间紧迫,关于工厂模式的内容有点多,要讲的话大致分为简单工厂模型,工厂方法模型,抽象工厂模型

 

这里 ,我就大概讲一下简单工厂模型,也是我们实际开发中用的相对比较多的

 

第一步,先创建工厂接口,也就是规定这个工厂是干嘛的:

 1 /*
 2 * 创  建  者: ouyangshengduo
 3 * 创建时间: 2017年3月31日
 4 * 文件名称: HairInterface.java
 5 * 版权信息: 2017 Edan. All rights reserved. 
 6 * 文件描述: 发型接口
 7 */
 8 package com.oysd.model.factory;
 9 
10 public interface HairInterface {
11     
12     //实现了发型
13     public void draw();
14 
15 }

 

第二步,实现不同产品具体内容

 1 /*
 2 * 创  建  者: ouyangshengduo
 3 * 创建时间: 2017年3月31日
 4 * 文件名称: LeftHair.java
 5 * 版权信息: 2017 Edan. All rights reserved. 
 6 * 文件描述: 
 7 */
 8 package com.oysd.model.factory;
 9 
10 public class LeftHair implements HairInterface {
11 
12     /**
13      * 画一个左偏分发型
14      */
15     @Override
16     public void draw() {
17         // TODO Auto-generated method stub
18 
19         System.out.println("-----------实现了一个左偏分发型-----------");
20     }
21 
22 }
 1 /*
 2 * 创  建  者: ouyangshengduo
 3 * 创建时间: 2017年3月31日
 4 * 文件名称: RightHair.java
 5 * 版权信息: 2017 Edan. All rights reserved. 
 6 * 文件描述: 
 7 */
 8 package com.oysd.model.factory;
 9 
10 public class RightHair implements HairInterface {
11 
12     
13     /**
14      * 画一个右偏分的发型
15      */
16     @Override
17     public void draw() {
18         // TODO Auto-generated method stub
19         System.out.println("-----------实现了一个右偏分发型-----------");
20     }
21 
22 }

创建工厂类

 1 /*
 2 * 创  建  者: ouyangshengduo
 3 * 创建时间: 2017年3月31日
 4 * 文件名称: HairFactory.java
 5 * 版权信息: 2017 Edan. All rights reserved. 
 6 * 文件描述: 
 7 */
 8 package com.oysd.model.factory;
 9 
10 public class HairFactory {
11     
12     /**
13      * 发型对象实例的创建工厂
14      * @param key
15      * @return
16      */
17     public static HairInterface newClass(String key){
18         HairInterface hair = null;
19         switch(key){
20         case "right":
21             hair = new RightHair();
22             break;
23         case "left":
24             hair = new LeftHair();
25             break;
26         default:
27             break;
28         
29         }
30         return hair;
31     }
32 
33 }

 

测试类:

 1 /*
 2 * 创  建  者: ouyangshengduo
 3 * 创建时间: 2017年3月31日
 4 * 文件名称: Client.java
 5 * 版权信息: 2017 Edan. All rights reserved. 
 6 * 文件描述: 测试类
 7 */
 8 package com.oysd.model.factory;
 9 
10 public class Client {
11 
12     public static void main(String[] args) {
13         // TODO Auto-generated method stub
14         
15         HairInterface hair = HairFactory.newClass("right");
16         
17         hair.draw();
18 
19     }
20 
21 }

 

posted @ 2017-03-31 18:25  欧阳生朵  阅读(1943)  评论(0编辑  收藏  举报