zoukankan      html  css  js  c++  java
  • java笔记策略模式和简单工厂模式

    策略模式:

    --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3884781.html "谢谢--

    为什么使用:
    策略模式主要用于有很多不同的方式来解决同一个问题的情景。
    如:文件的保存:可保存成txt,也可保存成xml。
    另外压缩文件、商场的促销策略等是类似的

    如何使用:
    需要定义一个接口或者抽象类来表示各种策略的抽象,
    由于在选择适当的策略上有些不方便,需要不断地判断需要的类型,
    因此需要用简单工厂方法来实现判断过程

    例子:
    用策略模式实现图片格式的存储
    1.建立一个公共接口用来保存图片格式

    public interface ImagineSave {
    /**
    * 图片存储格式
    */
      public void save();
    }


    2.根据图片现有格式分别建立每一种格式的接口实现类

    /**
    * 策略类一:图片格式GIF
    *
    * @author XIEHEJUN
    *
    */
    public class GIFSave implements ImagineSave {

    @Override
    public void save() {
      System.out.println("存储格式为GIF");
    }

    }

    /**
    * 策略类二:图片格式JPEG
    *
    * @author XIEHEJUN
    *
    */
    public class JPEGSave implements ImagineSave {

    @Override
    public void save() {
      System.out.println("将图片保存为JPEG格式。");

    }

    }

    /**
    * 策略类三:图片格式PEN
    *
    * @author XIEHEJUN
    *
    */
    public class PENSave implements ImagineSave{

    @Override
    public void save() {
      System.out.println("将图片保存为PEN格式。");
      }

    }


    3.建立一个简单工厂类,实现格式判断过程

    /**
    * 建立简单工厂类
    *
    * @author XIEHEJUN
    *
    */
    public class TypeFactotry {
      public static ImagineSave getSaver(String type) {
        if (type.equalsIgnoreCase("GIF")) {
          return new GIFSave();
        } else if (type.equalsIgnoreCase("JPEG")) {
          return new JPEGSave();
        } else if (type.equalsIgnoreCase("PEN")) {
          return new PENSave();
        } else {
          return null;
        }

      }
    }


    4.main函数

    public static void main(String[] args) {
      // TODO Auto-generated method stub
      ImagineSave save = TypeFactotry.getSaver("JPEG");
      save.save();
      save = TypeFactotry.getSaver("GIF");
      save.save();
      save = TypeFactotry.getSaver("PEN");
      save.save();
      save = TypeFactotry.getSaver("GIF");
      save.save();
    }

    知识重在总结和梳理,只有不断地去学习并运用,才能化为自己的东西。由于本人进阶猿类时间尚短,故此博客即是我学习,工作的笔记,也是和大家交流,相互提升技术的平台~希望大家不吝赐教~~ --但管努力,莫问前程,事在人为,功不唐捐。--和佑博客园
  • 相关阅读:
    eclipse中如何修改编码格式
    如何让Div中的Table居中
    EL表达式和标准标签库
    jQuery获取option的一些常用方法
    第三十五章——过滤器和监听器
    第三十四章——java web的注册登录和留言板的制作
    关于九大内置对象的补充——application
    第三十三章——javaweb初识和九大内置对象
    学习记录
    从 HTTP 到 HTTPS 再到 HSTS
  • 原文地址:https://www.cnblogs.com/XHJT/p/3884781.html
Copyright © 2011-2022 走看看