zoukankan      html  css  js  c++  java
  • 设计模式之策略模式

        今天我们要介绍的设计模式叫做策略模式。策略模式其实就是把不同的策略(方法)封装在不同的类中。在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式(摘自菜鸟教程)。下面我们用代码来实现策略模式。

        1、首先定义一个策略的接口:

    public interface Strategy {
        public int operating();
    }

    2.定义一些实现策略接口的实现类(具体的策略)。

    public class AddOperation implements Strategy{
        @Override
        public int operating(int a,int b) {
            return a+b;
        }
    }
    
    
    public class SubstractOperation implements Strategy{
        @Override
        public int operating(int a,int b) {
            return a-b;
        }
    }

    3.定义一个Context 类。

    public class Context {
        private Strategy strategy;
    
        public Context(Strategy strategy) {
            this.strategy = strategy;
        }
    
        public int executeStrategy(int a, int b) {
            return strategy.operating(a, b);
        }
    }

    4.客户端调用:

    public static void main(String[] args) {
              Context context = new Context(new AddOperation());    
              System.out.println("12 + 5 = " + context.executeStrategy(12, 5));
         
              context = new Context(new SubstractOperation());      
              System.out.println("12 - 5 = " + context.executeStrategy(12, 5));
        }
    
    
    代码执行结果:
    12 + 5 = 17
    12 - 5 = 7

    在实际的开发中,策略模式通常与工厂模式混合使用。

  • 相关阅读:
    css去掉点击连接时所产生的虚线边框技巧兼容符合w3c标准的浏览器
    html中<a href> </a>的用法
    点击页面其他地方关闭弹出层
    CSS文字两端对齐
    mouseover和mouseenter的区别
    jquery中的$("#id")与document.getElementById("id")的区别
    console.log
    ie6中margin失效问题
    渐变
    CSS 清除浮动的4种方法
  • 原文地址:https://www.cnblogs.com/suyang-java/p/10357947.html
Copyright © 2011-2022 走看看