模板方法模式,策略模式
2017-03-16 23:19
267 查看
1策略模式:
实现一个程序,电影票打折,老人,小孩各有不同的折扣看电影。
public class Test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
People p =new OldPeople("老人");
p.buyTickets();
p.getDiscount(new DiscontOf5());
}
}
interface Discount{
public void discountWay();
}
class DiscontOf7 implements Discount{
public void discountWay(){
System.out.println("电影票打七折");
}
}
class DiscontOf5 implements Discount{
public void discountWay(){
System.out.println("电影票打五折");
}
}
class DiscontOf8 implements Discount{
public void discountWay(){
System.out.println("电影票打八折");
}
}
abstract class People{
private String typePeople;
private Discount discount;
public People(String typePeople){
this.typePeople=typePeople;
}
public void getDiscount(Discount discount){
discount.discountWay();
}
public void buyTickets(){
System.out.println(typePeople+"买票看电影!");
}
}
class OldPeople extends People{
public OldPeople(String typePeople){
super(typePeople);
}
}2:模板方法模式
实现一个程序,去饭店吃饭,选择各种不同的套餐。
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
PersonTreat personA=new PersonA("张三");
personA.treat();
personA.dishes();
personA.payment();
}
}
abstract class PersonTreat{
protected String name;
public void treat(){
System.out.println(name+"要请客吃饭");
}
public void dishes(){
switch (change()) {
case 1:
System.out.println("点的菜有:宫保鸡丁,红烧排骨。。。。。");
break;
case 2:
System.out.println("点的菜有:鱼香肉丝,铁板鱿鱼。。。。。");
break;
case 3:
System.out.println("点的菜有:碳烤活鱼,水煮鱼片。。。。。");
break;
default:
System.out.println("不知道怎么选择。");
break;
}
}
public void payment(){
System.out.println(name+"结账");
}
abstract int change();
}
class PersonA extends PersonTreat{
public PersonA(String name) {
this.name=name;
}
public int change(){
Random r =new Random();
int a =r.nextInt(3)+1;
return a;
}
}
实现一个程序,电影票打折,老人,小孩各有不同的折扣看电影。
public class Test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
People p =new OldPeople("老人");
p.buyTickets();
p.getDiscount(new DiscontOf5());
}
}
interface Discount{
public void discountWay();
}
class DiscontOf7 implements Discount{
public void discountWay(){
System.out.println("电影票打七折");
}
}
class DiscontOf5 implements Discount{
public void discountWay(){
System.out.println("电影票打五折");
}
}
class DiscontOf8 implements Discount{
public void discountWay(){
System.out.println("电影票打八折");
}
}
abstract class People{
private String typePeople;
private Discount discount;
public People(String typePeople){
this.typePeople=typePeople;
}
public void getDiscount(Discount discount){
discount.discountWay();
}
public void buyTickets(){
System.out.println(typePeople+"买票看电影!");
}
}
class OldPeople extends People{
public OldPeople(String typePeople){
super(typePeople);
}
}2:模板方法模式
实现一个程序,去饭店吃饭,选择各种不同的套餐。
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
PersonTreat personA=new PersonA("张三");
personA.treat();
personA.dishes();
personA.payment();
}
}
abstract class PersonTreat{
protected String name;
public void treat(){
System.out.println(name+"要请客吃饭");
}
public void dishes(){
switch (change()) {
case 1:
System.out.println("点的菜有:宫保鸡丁,红烧排骨。。。。。");
break;
case 2:
System.out.println("点的菜有:鱼香肉丝,铁板鱿鱼。。。。。");
break;
case 3:
System.out.println("点的菜有:碳烤活鱼,水煮鱼片。。。。。");
break;
default:
System.out.println("不知道怎么选择。");
break;
}
}
public void payment(){
System.out.println(name+"结账");
}
abstract int change();
}
class PersonA extends PersonTreat{
public PersonA(String name) {
this.name=name;
}
public int change(){
Random r =new Random();
int a =r.nextInt(3)+1;
return a;
}
}
相关文章推荐
- 模板方法模式和策略模式的相似点和差异性
- 《敏捷软件开发》学习笔记 第14章 模板方法模式和策略模式
- 模板方法模式与策略模式的区别
- java设计模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式、适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式,。 行为型模式,共十一种:策略模式、模板方法)
- “设计模式”学习之九:策略、模板方法与访问者(行为型)
- 十一、行为型模式之模板方法、职责链、策略-----《大话设计模式》
- 23种设计模式4--行为型模式(策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式)
- 命令模式 & 策略模式 & 模板方法
- TypeScript设计模式之策略、模板方法
- android架构之模板方法模式和策略模式
- java 策略模式 模板方法 (Template method) 示例
- 设计模式之模板方法模式、策略模式、命令设计模式
- Android设计模式之命令模式、策略模式、模板方法模式
- 单例模式、策略模式、模板方法设计模式探究
- 设计模式之模板方法和策略模式的区别(二)
- 策略模式、中介者模式和模板方法模式
- 模板方法模式与策略模式的区别
- 设计模式之模板方法模式和策略模式
- Head First设计模式学习—模板方法、策略模式
- Android 设计模式之(二)建造者,模板方法,策略模式