策略设计模式简单实现

```
//测试类
public class ExtDemo
{
    public static void main(String[] args) {
     CellPhone Apple = new Apple("苹果");
     Person person = new Person("熊大");
     person.SendByTel(Apple);
     CellPhone Sunsum = new Sunsum("三星");
     Person person1 = new Person("熊二");
     person1.SendByTel(Sunsum);
    }

}
//抽象出来的接口
interface Tel
{
    public void SendText();
}
//策略父类
class CellPhone implements Tel
{
    public String name;
    CellPhone(String name)
    {
        this.name = name;
    }
    @Override
    public void SendText() {
        System.out.println("用"+name+"手机发短信速度一般");
    }
}
//策略子类
class Apple extends  CellPhone
{
    Apple(String name) {
        super(name);
    }
    @Override
    public void SendText() {
        System.out.println("用"+name+"手机发短信速度一般");
    }
}
class Sunsum extends CellPhone
{
    Sunsum(String name) {
        super(name);
    }

    @Override
    public void SendText() {
        System.out.println("用"+name+"手机发短信速度一般");
    }
}
class Xiaomi extends CellPhone
{
    Xiaomi(String name) {
        super(name);
    }

    @Override
    public void SendText() {
        System.out.println("用"+name+"手机发短信速度一般");
    }
}
//具体场景
class Person
{
    String name;
    public Person(String name)
    {
        this.name=name;
    }
    public void SendByTel(Tel tel)
    {
        System.out.print(name);
        tel.SendText();
    }
}

“`

猜你喜欢

转载自blog.csdn.net/li_jeremy/article/details/80055795