策略模式+内部类

一、策略模式(小任务:银行Bank)

策略模式Strategy------行为型模式的一种
用于解决执行流程固定,执行结果不相同,由于提供了不同的执行策略—结果就不同
银行类
办理业务方法(人){
流程固定
叫一个号码
办理业务
离开
}
用来定义流程
用来提供策略(抽象类 接口)
传递的参数是抽象类或接口
真实执行传递的是子类的对象—多肽
执行结果是子类重写之后的效果

设计一个方法 等待用户来办理业务
Profession
叫一个号码–>排队
去窗口办理–>办理
办理完毕离开–>离开
老人 年轻 土豪
//安照刚才的设计 可能有问题
//1.三个不同的人类方法名不一致(可以)
//2.银行办理业务的方法写了三个
//解决如上所述的问题 可以在三个人类之上创建一个父类
//1.解决三个人类中的相同代码 比如name属性 比如get方法之类的
//2.父类定义的三个方法可以是抽象 解决了子类命名不一致的问题 子类执行也不一致
//3.父类可以作为参数传入银行

调用一个方法 名字一样 传递参数缺不同
1.利用方法重载—静态加载
2.利用多肽效果—动态加载

package bank;

public class Bank{
	//开门  等待用户进来办理业务
	public void profession(Person person){
		System.out.println(person.getName()+"客户进入银行啦");
		person.callNumber();
		person.transact();
		person.leave();
	}
}
package bank;

public abstract class Person{
	protected String name;
	public void setName(String neme){
		this.name=name;
	}
	public String getName(){
		return this.name;
	}
	//1.进银行  叫一个号码  排队
	public abstract void callNumber();
	//2.去窗口办理
	public abstract void transact();
	//3.办理完毕离开啦
	public abstract void leave();
}
package bank;

public class Toff extends Person{
	private String name;
	public Toff(){}
	public Toff(String name){
		this.name =name;
	}
	//1.进银行  叫一个号码  排队
	public abstract void callNumber(){
		System.out.println("我是土豪我有钱 不需要叫号排队  直接进入VIP窗口");
	}
	//2.去窗口办理
	public abstract void transact(){
		System.out.println(”我是土豪我有钱  甩一张限量黑卡  取1000w  买车“);
	}
	//3.办理完毕离开啦
	public abstract void leave(){
		System.out.println(“办理完离开了”);
	}
}
package bank;

public class OldMan extends Person{
	public OldMan(){}
	p
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值