技术开发 频道

浅析设计模式之模板方法

模板方法的应用 

    我们来作这样一个假设:教育部规定了高校新生报到的流程(这好比写好了算法的骨架),流程为 凭录取通知书教务处报到->缴费->本院系报到(获取自己的专业班级信息)->教材科发教材。

public class 高校 { //这就是一个模板方法,定义了算法的骨架 public void 报到() { //这个执行步骤要是中间还穿插些情节就更完美了,现在姑且这样吧 教务处报到(); 缴费(); 本院系报到(); 教材科发教材(); } protected abstract void 教务处报到(); protected abstract void 缴费(); protected abstract 专业等信息 本院系报到(); protected abstract 教材 教材科发教材(); }

    但是各个具体的院校因为自己的情况对这个步骤作进一步补充:清华大学(该校信息技术及其发达,处处透露出信息化气息)。清华大学的学生领取的通知书是一张磁卡,学生拿着磁卡到教务处报到只需要去刷卡即可,该卡还具有银行支付功能,学生只需要向该卡转入学费就可以完成缴费,但是必须是先到教务处报到后该卡才生效。学生缴费以后由电子系统自动到学生院系报到并通过手机短信方式将学生专业班级信息发送给学生,完成后由学校的物流配送系统将学生教材送到学生寝室。

public class 清华大学 : 高校 { protected override void 教务处报到() { //刷卡 } protected override void 缴费() { //银行卡转账 } protected override 专业等信息 本院系报到() { //系统自动将学生信息转入到院系信息系统 //系统将学生专业班级信息发送到学生手机 return 手机短信方式的专业等信息 } protected override 教材 教材科发教材() { //学校物流配送系统送教材 return 教材 } }

 

    北京大学(该校认为作为有深厚文化底蕴的高校,应该注重人文气息,不能用冷冰冰的电子设备代替人工,所以该校报到过程全部人工化)该校通知书为普通纸片,到教务处报到需要学生签字处长签字,然后到财务处缴纳学费,然后到院系见书记一面,给了你一张有专业班级等信息的卡片,最后拿个袋子到教材科装教材回寝室了。

public class 北京大学 { protected override void 教务处报到() { //学生签字 //教务处处长签字 //报到完毕 } protected override void 缴费() { //到财务处缴纳现金 } protected override 专业等信息 到本院系报到() { //见到院书记 return 纸片方式的专业等信息 } protected override 教材 教材科发教材() { //自备袋子到教材科 return 教材 } }

 

    以上是两个高校针对教育部颁发的新生报到算法作出自己具体的实现。那么全国有这么多高校又有多少种实现呢?让教育部分别给每所高校规定新生报到算法,这样是不现实的,如果教育部给所有高校规定同一个样子的报到流程就失去了灵活性,毕竟要考虑实际嘛。 


    通过上面的描述是不是觉得模板方法好像是:上有政策,下有对策?对,模板方法就是上面的这个政策,各个下级有自己对政策中具体步骤的实现。模板方法就像我们的宪法一样,对其他所有法律指定了一些大的框架,要制订新的法律必须依照这个框架。

0
相关文章