Public interface Printer {
public abstract Void open ();
public abstract void Close ();
public abstract void print ();
}
public class Hpprinter implements Printer {
@Override
public void Open () {
System.out.println ("Hpprinter open");
}
@Override
public void Close () {
System.out.println ("Hpprinter close");
}
@Override
public void print () {
System.out.println ("Hpprinter print");
}
}
public class Hwprinter implements Printer {
@Override
public void Open () {
System.out.println ("Hwprinter open");
}
@Override
public void Close () {
System.out.println ("Hwprinter open");
}
@Override
public void print () {
System.out.println ("Hwprinter open");
}
}
public class Factoryprinter {
public static Printer getprinter (int arg) {
Printer Printer = null;
if (arg = = 0) {
Printer = new Hpprinter ();
}
else if (arg = = 1) {
Printer = new Hwprinter ();
}
return printer;
}
}
public class computer
{
Private Printer Printer;
Public computer (Printer Printer)
{
This.printer = printer;
}
Define a method for simulating printing
public void print ()
{
Printer.print ();
}
}
public class Test {
public static void Main (string[] args) {
Printer Printer = null;
int flag = 0;
Printer = Factoryprinter.getprinter (flag);
Computer computer = new computer (printer);
Computer.print ();
}
}
Static Factory mode of design mode