JAVA设计模式:模板设计模式
1.模板设计模式,是为了体现继承的作用。它主要的作用就是在类中定义一些公共的方法和标准,而其具体的实现则叫给其子类来根据子类具体的行为来实现;因为模板设计模式中必经还有一些自己的方法不是抽象的方法,只是将一些需要交给子类的进行了抽象。这就是模板设计模式。具体的可以见如下代码:
1 package com.huawei.madejin.example; 2 3 abstract class Person 4 { 5 private String name; 6 private int age; 7 8 public Person(String name,int age){ 9 this.name = name; 10 this.age = age; 11 } 12 13 //人都可以说话,但说的内容则根据不同的人说的内容又有所不同。 14 public void say() 15 { 16 System.out.println(this.getContent()); 17 } 18 19 //具体的内容,所以抽象方法,相对于一个模板 20 public abstract String getContent(); 21 22 public String getName() { 23 return name; 24 } 25 public void setName(String name) { 26 this.name = name; 27 } 28 public int getAge() { 29 return age; 30 } 31 public void setAge(int age) { 32 this.age = age; 33 } 34 35 } 36 37 class Student extends Person 38 { 39 40 private double score; 41 42 43 public Student(String name ,int age,double score){ 44 super(name,age); 45 this.score = score; 46 } 47 48 public double getScore() { 49 return score; 50 } 51 52 public void setScore(double score) { 53 this.score = score; 54 } 55 56 //子类具体去实现 57 @Override 58 public String getContent() { 59 return "我是一个学生,我的名字叫:"+super.getName()+"年龄为:"+super.getAge()+"考试分数为:"+this.score; 60 } 61 62 } 63 64 class Worker extends Person{ 65 66 private double salary; 67 68 69 public double getSalary() { 70 return salary; 71 } 72 73 public void setSalary(double salary) { 74 this.salary = salary; 75 } 76 77 public Worker(String name, int age,double salary) { 78 super(name, age); 79 this.salary = salary; 80 // TODO Auto-generated constructor stub 81 } 82 83 @Override 84 public String getContent() { 85 return "我是一名工人,我的名字叫:"+super.getName()+"年龄为:"+super.getAge()+"薪水为:"+this.salary; 86 } 87 88 } 89 public class TemplateTest { 90 91 /** 92 * @param args 93 */ 94 public static void main(String[] args) { 95 // TODO Auto-generated method stub 96 Person p = new Student("张三",18,99.0); 97 p.say(); 98 Person pe = new Worker("李四",27,8000.0); 99 pe.say(); 100 } 101 102 }
模板设计可以看出现实社会中,我们经常填表的的风格一样,那个表格就是模板,具体的内容是由你来填的.......
这就是模板设计......