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

  • 相关阅读:
    java中math类
    java中的值传递和引用传递(转)
    eclipse 字体和配色修改
    JAR WAR EAR包的区别
    java中基本类型
    tomcat 7.0 配置详解
    或许你需要一些可操作性更强的实践
    Assembly.CreateInstance()与Activator.CreateInstanc
    OOD沉思录2 类和对象的关系包含关系
    C#的插件开发
  • 原文地址:https://www.cnblogs.com/android-deli/p/10322233.html
Copyright © 2011-2022 走看看