Public interface kitchenfactory{//Abstract Factory public food getfood (); Abstract method Public tableware gettableware (); Public interface food{//Abstract food public String getfoodname ();} public interface Tableware{public String gettoolname ();//abstract Tableware}public class Akitchen implements kitchenfactory{// Specific factory public food Getfood () {return new Apple ();} Public tableware Gettableware () {return new Knife ();}} public class Apple implements food{//specific food public String getfoodname () {return "Apple";}} Public class knife implements tableware{//specific tableware public String gettoolname () {return "Knife";}} public class foodaholic{//foodie to open eat public void eat (Kitchenfactory) {System.out.println ("A foodaholic is eating" +k.getfood (). Getfoodname () + "with" +k.gettableware (). Gettoolname ()); public static void Main (string[] args) {foodaholic fh=new foodaholic (); Kitchenfactory kf=new Akitchen (); Fh.eat (KF);}}
Java Advanced Factory mode (ii) abstract Factory mode