zoukankan      html  css  js  c++  java
  • 设计模式----策略模式通俗实例

    在Spring里,策略模式,加载资源文件的方式,使用了不同的方法,比如:ClassPathResourece,FileSystemResource,ServletContextResource,UrlResource但他们都有共同的借口Resource;在Aop的实现中,采用了两种不同的方式,JDK动态代理和CGLIB代理


    锻炼身体,你可以选择跑步、游泳、举重,于是就有了三个策略可以选择了


    锻炼方式策略的接口

    package com.ij34.stategy;
    /*
    
      策略模式接口
    */
    
    public interface StrategyPattern {
        /*
           锻炼方式的方法
        */
        public void exercise();
    }

    三种锻炼方式

    1.

    package com.ij34.stategy;
    /*
      实现跑步锻炼方法
    */
    
    public class run implements StrategyPattern {
    
        @Override
        public void exercise() {
            System.out.println("我正在通过跑步来锻炼身体");
        }
    }

    2.

    package com.ij34.stategy;
    /*
      实现游泳锻炼方法
    */
    
    public class swim implements StrategyPattern {
    
        @Override
        public void exercise() {
            System.out.println("我正在通过游泳来锻炼身体");
        }
    }

    3.

    package com.ij34.stategy;
    /*
      实现举重锻炼方法
    */
    
    public class lift implements StrategyPattern {
    
        @Override
        public void exercise() {
            System.out.println("我正在通过举重来锻炼身体");
        }
    }

    为用户选择锻炼方式的Context类

    package com.ij34.stategy;
        /*
       通过该类为用户提供自己喜爱的锻炼方式
    */
    public class exerciseContext {
        private StrategyPattern sp;
        public exerciseContext(StrategyPattern sp){
            this.sp=sp;
        }
    
        public void exercise(){
            sp.exercise();
        }
    }

    测试类

    package com.ij34.stategy;
    
    public class Test {
        /*
        张三喜欢跑步,通过跑步来锻炼
        */
        public static void main(String[] args) {
            exerciseContext zhangsan=new exerciseContext(new run());
            zhangsan.exercise();
        }
    
    }

    测试结果

  • 相关阅读:
    Native Boot 从一个 VHD 引导系统的相关说明
    bind()函数的深入理解及两种兼容方法分析
    四、CentOS 6.5 上传和安装Nginx
    jQuery 常见操作实现方式
    “贷券” 信贷系统
    注册 Ironic 裸金属节点并部署裸金属实例
    hover()方法
    Uncaught SyntaxError: Inline Babel script: Unexpected token
    Uncaught Error: The `style` prop expects a mapping from style properties to values, not a string
    jquery bind事件
  • 原文地址:https://www.cnblogs.com/tk55/p/9231989.html
Copyright © 2011-2022 走看看