Abstract class Phonemodel6inch
{
public void Printphoneinfo ()
{
ScreenSize ();
SystemType ();
ColorType ();
}
Protected final void screensize ()
{
System.out.print ("6 inch,");
}
Abstract protected void SystemType ();
abstract void ColorType ();
}
Class Phone1 extends Phonemodel6inch
{
public void SystemType ()
{
System.out.print ("2G,");
}
public void ColorType ()
{
System.out.println ("Black");
}
}
Class Phone2 extends Phonemodel6inch
{
public void SystemType ()
{
System.out.print ("3G,");
}
public void ColorType ()
{
System.out.println ("Red");
}
}
public class Templatemethodpattern
{
public static void Main (string[] args)
{
System.out.print ("Number 1 phone is:");
Phone1 aphone1=new Phone1 ();
Aphone1.printphoneinfo ();
System.out.print ("Number 2 phone is:");
Phone2 aphone2=new Phone2 ();
Aphone2.printphoneinfo ();
}
}
/////////////////////////////////////////////////
Output Result:
Number 1 phone is:6 inch,2g,black
Number 2 phone is:6 inch,3g,red
8 of 23 Design Patterns in Java-template method pattern