• 移动架构-模板模式


    定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类不改变算法的结构即可重复定义算法的某些特点步骤

    角色

    AbstractClass抽象类,定义算法结构,还可以提供通用实现
    ConcreteClass具体实现类

    优缺点

    优点:
    1、封装不变部分,扩展可变部分
    2、提取公共代码,便于维护
    3、行为由父类控制,子类实现
    缺点:
    每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大

    应用场景

    1. 有多个子类共有的方法,且逻辑相同
    2. 重要的、复杂的方法,可以考虑作为模板方法

    为防止恶意操作,一般模板方法都加上 final 关键词

    理解实例

    模板模式其实很简单,无处不在
    抽象游戏类

    public abstract class Game {
    	abstract void login();
    	abstract void play();
    	abstract void stop();
    	public final void start() {
    		System.out.println("开始");
    		login();
    		play();
    		stop();
    		System.out.println("结束");
    	}
    }
    

    具体实现类

    public class PlayGame extends Game {
    	@Override
    	void login() {
    		System.out.println("登陆游戏");
    	}
    	@Override
    	void play() {
    		System.out.println("打游戏");
    	}
    	@Override
    	void stop() {
    		System.out.println("退出游戏");
    	}
    }
    

    测试类

    public class Test {
    	public static void main(String[] args) {
    		Game game = new PlayGame();
    		game.start();
    	}
    }
    
  • 相关阅读:
    IT资产管理系统SQL版
    反转单词(C#实现)
    删除数组中重复的元素(C#实现)
    最大子数组之和(C#实现)
    判断是否是三角形
    如何解决SSAS + SSRS + WSS3.0 之间的Windows 集成验证问题
    关于SharpDevelop
    规划一个SharePoint的解决方案
    Scalability Design
    合作意味着分享
  • 原文地址:https://www.cnblogs.com/cj5785/p/10664620.html
Copyright © 2020-2023  润新知