zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    PHP中文字符串编码转换
    html表单样式, table隔行高亮, 长字符串自动换行
    PHP带重试功能的curl
    redis+crontab+php异步处理任务
    emoji表情初探
    iptables进行DNAT(目标地址转换)
    Linux作为路由器(一)
    nginx正向代理http(一)
    Linux Shell sort排序常用命令(转载)
    Zabbix添加自定义监控项(一)
  • 原文地址:https://www.cnblogs.com/ouyangduoduo/p/6652789.html
Copyright © 2011-2022 走看看