zoukankan      html  css  js  c++  java
  • 策略模式(设计模式_02)

    策略模式,其实就是封装变化,为了更加好理解,直接写一个简单案例来说明:

    首先抽象一个打印的类,这个类里面有打印方法,就是简单的打印一句话

    // 定义一个抽象打印的类
    public abstract class Print {
        // 定义打印一句话的方法
        public abstract void printMethod();
    }
    
    // 写一个子类A,继承父类 Print
    public class PrintA extends Print{
        public void printMethod() {
            System.out.println("PrintA printMethod AAA...");
        }
    }
    
    // 写一个子类B继承父类 Print
    public class PrintB extends Print{
        public void printMethod() {
            System.out.println("PrintB printMethod BBB...");
        }
    }
    
    // 写一个子类C继承父类 Print
    public class PrintC extends Print{
        public void printMethod() {
            System.out.println("PrintC printMethod CCC...");
        }
    }
    
    // 此类用于控制对象
    public class Context {
    
        private Print print;
    
        public Context(Print print) {
            this.print = print;
        }
    
        public void contextMethod() {
            print.printMethod();
        }
    }
    
    // 客户端程序调用
    public class Main {
    
        public static void main(String[] args) {
    
            Context context;
    
            // 想使用哪个策略,就使用哪个策略,客户端值需指定一个类Context就够了,封装了变化
    
            context = new Context(new PrintA());
            context.contextMethod();
    
            context = new Context(new PrintB());
            context.contextMethod();
    
            context = new Context(new PrintC());
            context.contextMethod();
        }
    
    }

    执行结果:
    这里写图片描述

    谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
    刘德利CSDN博客, http://blog.csdn.net/u011967006

  • 相关阅读:
    Lua C Api
    Lua string.gsub (s, pattern, repl [, n])
    LearnOpenGL 你好,三角形[转]--附源码
    学习OpenGL简单易懂网站
    泰文排版规则
    Lua截取utf-8编码的中英文混合字符串
    字符编码
    使用Ant编译提示Class not found: javac1.8
    MySQL索引
    转 linux 权限
  • 原文地址:https://www.cnblogs.com/android-deli/p/10322233.html
Copyright © 2011-2022 走看看