• 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 }
  • 相关阅读:
    jquery引入页面公共部分
    webpack1:安装webpack及项目创建
    windows命令中的cd
    区分IE8 、IE9 、IE10的专属css hack
    HSLA色相饱和透明度
    jquery开关按钮效果
    Jquery样式
    CSS文本溢出显示省略号
    数组重排
    webstorm node 3000端口被占用
  • 原文地址:https://www.cnblogs.com/ouyangduoduo/p/6652789.html
Copyright © 2020-2023  润新知