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

    测试结果

  • 相关阅读:
    我终于会手打lct了!
    [模板]Dijkstra-优先队列优化-单源最短路
    99999999海岛帝国后传:算法大会
    正在加载中。。。。。
    【题解】CF1054D Changing Array(异或,贪心)
    【题解】P4550 收集邮票(概率期望,平方期望)
    【题解】CF149D Coloring Brackets(区间 DP,记忆化搜索)
    【笔记】斜率优化 DP
    CSP2021 游记
    【题解】洛谷P1502 窗口的星星
  • 原文地址:https://www.cnblogs.com/tk55/p/9231989.html
Copyright © 2011-2022 走看看