zoukankan      html  css  js  c++  java
  • 策略模式(think in java中的设计模式)

    策略模式:策略模式类似于状态模式。也是通过多态表现的一种设计模式。区别在于状态模式讲究的是行为状态为主题,讲究不同对象的不同行为。策略模式则是以服务对象为主题,讲究对同一个对象使用不同的服务。

    public class Test {
        public static void main(String[] args){
            String s="Hello world";
            A a1=new B();
            A a2=new C();
            D d=new D();
            d.setA(a1);
            d.say(s);
            d.setA(a2);
            d.say(s);
            
        } 
    }
    class A{
        public void say(String s){
            System.out.println(s);
        };
    }
    class B extends A{
    public void say(String s){
            System.out.println(s.toUpperCase());
        };
    }
    class C extends A{
    public void say(String s){
        System.out.println(s.toLowerCase());
        };
    }
    class D{
        private A a=null;
        public void setA(A a2){
            this.a=a2;
        }
        public void say(String s){
            this.a.say(s);
        }
    }

    最终输出为:

    HELLO WORLD
    hello world

    其中D为环境角色,A为抽象策略角色,BC为具体策略角色。。

    环境配置好之后把不同的A类带入D中使用同样的方法达到效果

  • 相关阅读:
    从Ecma规范深入理解js中的this的指向
    js中继承的几种用法总结(apply,call,prototype)
    缓存 Array.length 是老生常谈的小优化
    spark app
    source code spark
    spark dev by IDEA
    编译spark-0.9.1
    图解GIT,ZT
    Spark分布式安装
    倒排索引(Inverted Index)
  • 原文地址:https://www.cnblogs.com/blackdeng/p/7058082.html
Copyright © 2011-2022 走看看