Java基础之抽象类的应用模板方法模式 接口应用策略模式

抽象类应用—模板方法模式

模板方法模式(Templete Method):定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中。模版方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。


/**
模板方法模式
(Templete Method):定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中。
模版方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。

*/
public class Test7{
	public static void main(String[] args){
		UserManager um = new UserManager();
		um.action("test","add");
	}
}

abstract class BaseManager{
	
	public void action(String name,String method){
		if("admin".equals(name)){
			execute(method);
		}else{
			System.out.println("你没有操作权限,请联系管理员");
		}
	}
	
	public abstract void execute(String method);
}

class UserManager extends BaseManager{
	public void execute(String method){
		
		//用户是否登录的验证
		//验证成功后才可以执行以下操作
		if("add".equals(method)){
			System.out.println("执行了添加操作");
		}else if("del".equals(method)){
			System.out.println("执行了删除操作");
		}
	}
}

class ClassManager{
	
}


接口应用—策略模式

把可变的行为抽象出来,这样的好处是这些行为可以在真正使用时相互替换
然后在使用的时候绑定接口

策略模式(Strategy Pattern),定义了一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。

OO设计原则:
1、面向接口编程(面向抽象编程)
2、封装变化
3、多用组合,少用继承


/**
策略模式(Strategy Pattern),定义了一系列的算法,将每一种算法封装起来并可以相互替换使用,
策略模式让算法独立于使用它的客户应用而独立变化。


把可变的行为抽象出来,这样的好处是这些行为可以在真正使用时相互替换
*/
public class Test8{
	public static void main(String[] args){
		BaseService user = new UserService();
		user.setISave(new NetSave());
		user.add("user");
	}
}

//把可变的行为抽象出来,定义一系列的算法
interface ISave{
	public void save(String data);
}

class FileSave implements ISave{
	public void save(String data){
		System.out.println("把数据保存到文件中..."+data);
	}
}
class NetSave implements ISave{
	public void save(String data){
		System.out.println("把数据保存到网络上..."+data);
	}
}

abstract class BaseService{
	
	private ISave iSave;
	public void setISave(ISave iSave){
		this.iSave = iSave;
	}
	
	public void add(String data){
		System.out.println("检查数据合法性...");
		iSave.save(data);
		System.out.println("数据保存完毕。");
	}
}

class UserService extends BaseService{
	
}




在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值