模板设计模式Java

什么是模板设计模式?

在父类中定义好算法的骨架,然后在子类中去实现。

总的来说就是父类中定义需要实现的总方法,然后在子类中去依次实现它

当然根据对象的不同,所实现的具体细节不同。

下面来看一个例子:

在父类中我们定义三个抽象的方法job ,在子类中去实现它。

子类中执行execute方法  job1()如果当前时间能整除2 则执行job2() 

然后顺序执行job3().


package 模板方法一;
public abstract class Job {
 protected abstract boolean job1();
 protected abstract void job2();
 protected abstract void job3();

 public void execute()
 {
	 if(this.job1())//如果job1执行 则一定执行job2
	 {
		 this.job2();//this当前指向的对象jobimp1
	 }
	 this.job3();	 
 }
}
package 模板方法一;
public class JobImp extends Job{
public static void main(String []args)
    {
	JobImp j=new JobImp();
	j.execute();
	}
	protected boolean job1() {
		return System.currentTimeMillis()%2==0;
	}
	@Override
	protected void job2() {
		System.out.println("大胸,你好");
	}
	@Override
	protected void job3() {
		System.out.println("hello wordl");
	}
}

模板模式的优点

 (1)具体细节步骤实现定义在子类中,子类定义详细处理算法是不会改变算法整体结构。

 (2)代码复用的基本技术,在数据库设计中尤为重要。

 (3)存在一种反向的控制结构,通过一个父类调用其子类的操作,通过子类对父类进行扩展增加新的行为,符合“开闭原则”。

    

模板模式的不足

  (1).每一个实现都要new一个子类,导致类的个数增加,系统庞大。


模板设计模式与接口的区别?

模板设计模式可以更好的限制子类,又让子类去实现。



猜你喜欢

转载自blog.csdn.net/RAVEEE/article/details/80439281