走向设计(策略模式)

来源:互联网 发布:网络与司马是什么意思 编辑:程序博客网 时间:2024/06/05 23:47

策略模式(Strategy Pattern):定义了算法族,分别封装起来,让它们之间可相互替换,此模式让算法的变化独立于使用算法的客户。
举例:
//这里有一个做某件事的接口:

public interface IsDoing {    public void doing();}

//这里实现了吃的方法:

public class Eat implements IsDoing {        public void doing() {            // TODO Auto-generated method stub            System.out.println("吃,吃快餐吃各种饭");//         }    }

//这里实现了喝的方法

    public class Drink implements IsDoing {        public void doing() {            // TODO Auto-generated method stub            System.out.println("     喝,喝各种饮料");//         }    }
//用户去吃喝
public class PeopleUse {        private String name;        private Eat eat;        private Drink drink;        public PeopleUse(String name) {            this.name = name;        }        public void setEat(Eat eat) {            this.eat = eat;        }        public void setDrink(Drink drink) {            this.drink = drink;        }        public void toDrink() {            drink.doing();        }        public void toEat() {            eat.doing();        }}

//传入用户

public static void main(String[] args) {        PeopleUse people = new PeopleUse("张三");        people.setEat(new Eat());        people.setDrink(new Drink());        people.toEat();        people.toDrink();    }

这里吃和喝的方法单独封装,变化的算法独立出来,使用这些方法的用户只是在peopleUse类进行修改操作。

0 0
原创粉丝点击