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();
        }
    
    }

    测试结果

  • 相关阅读:
    JavaScript Patterns 5.7 Object Constants
    JavaScript Patterns 5.6 Static Members
    JavaScript Patterns 5.5 Sandbox Pattern
    JavaScript Patterns 5.4 Module Pattern
    JavaScript Patterns 5.3 Private Properties and Methods
    JavaScript Patterns 5.2 Declaring Dependencies
    JavaScript Patterns 5.1 Namespace Pattern
    JavaScript Patterns 4.10 Curry
    【Android】如何快速构建Android Demo
    【Android】如何实现ButterKnife
  • 原文地址:https://www.cnblogs.com/tk55/p/9231989.html
Copyright © 2011-2022 走看看