Java设计模式—策略模式(strategy pattern)

所谓策略模式,即创建一个根据所传递参数对象的不同具有不同行为的方法,这主要是依据多态实现的。

将基类作为参数定义某方法,而实际传入不同的子类对象,也就通过后期绑定调用了不同的方法,即采取了不同的策略。

abstract class PersonComing {
    abstract void process(Person person);
}
class FriendComing extends PersonComing {
    void process(Person friend) {
        System.out.println("say hello to " + friend);
    }
}
class ThiefComing extends PersonComing {
    void process(Person thief) {
        System.out.println("call 110 to arrrest " + thief);
    }
}
class Person {
    String name;
    Person(String str) {
        name = str;
    }
    public String toString() {
        return name;
    }
}
public class Test {
    static void deal(PersonComing meet, Person person) {
        meet.process(person);
    }
    public static void main(String[] args) {
        Person friend = new Person("Tom");
        Person thief = new Person("Tim");
        deal(new FriendComing(),friend); //output: say hello to Tom
        deal(new ThiefComing(),thief); //output: call 110 to arrest Tim
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值