从头认识设计模式-策略模式-01-原始应用场景

这一章节我们先引入策略模式使用的原始应用场景,然后通过一步步的改进,来阐述为什么需要策略模式?怎么使用策略模式?

1.原始应用场景

下面我们构建了一个我们比较熟悉的应用,就是Service的实现都继承一个BaseService的实现

package com.raylee.designpattern.strategy.ch01;

/**
 * 这个类是我们需要使用设计模式改进的原始类,也就是策略模式应用的初始环境。
 * 
 * @author raylee
 * @data 2016-03-16
 * @version 1.0
 */
public class BaseServiceImpl {
	public void add() {
		System.out.println("add a new object");
	}

	public void update() {
		System.out.println("update object");
	}

	public void query() {
		System.out.println("query and return a object");
	}

	public void delete() {
		System.out.println("delete the object");
	}
}


package com.raylee.designpattern.strategy.ch01;

/**
 * @TODO 用于课程的增删改查
 * @author raylee
 * @date 2016年3月16日
 * @version 1.0
 */
public class CourseServiceImpl extends BaseServiceImpl {

}

package com.raylee.designpattern.strategy.ch01;

/**
 * @TODO 用于用户的增删改查
 * @author raylee
 * @date 2016年3月16日
 * @version 1.0
 */
public class UserServiceImpl extends BaseServiceImpl {

}

package com.raylee.designpattern.strategy.ch01;

/**
 * @TODO 用于部门的增删改查
 * @author raylee
 * @date 2016年3月16日
 * @version 1.0
 */
public class DeptServiceImpl extends BaseServiceImpl {

}

package com.raylee.designpattern.strategy.ch01;

public class Client {
	// 对用户、部门、课程进行增删改查
}

2.介绍

(1)我们建立一个通用的BaseService的实现,里面的功能只有增删改查。(这是我们平常比较常用的场景)

(2)下面的UserServiceImpl、DeptServiceImpl、CourseServiceImpl都只是继承Base的实现,自己里面没有独立的逻辑。

(3)Client指的是客户端,客户端对接口进行调用,然后对User、Dept和Course进行增删改查。


3.当我们完成上面的功能的时候,我们的客户要求我们增加导入导出功能?

现在需求变了,我们应该怎么应对?


总结:这一章节我们引入了原是应用环境,并对应用环境进行新的要求。


目录:http://blog.csdn.net/raylee2007/article/details/50951190


我的github:https://github.com/raylee2015/designpattern

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值