1 Public classTestfactorymethod {2 Public Static voidMain (string[] args) {3Iworkfactory i =Newstudentworkfactory ();4 i.getwork (). DoWork ();5 6Iworkfactory I1 =Newteacherworkfactory ();7 i1.getwork (). DoWork ();8 }9 }Ten One Interfaceiworkfactory{ A Work getwork (); - } - classStudentworkfactoryImplementsiworkfactory{ the - @Override - PublicWork Getwork () { - return Newstudentwork (); + } - + } A classTeacherworkfactoryImplementsiworkfactory{ at - @Override - PublicWork Getwork () { - return Newteacherwork (); - } - in } - to Interfacework{ + voiddoWork (); - } the * classStudentworkImplementswork{ $ Panax Notoginseng @Override - Public voiddoWork () { theSYSTEM.OUT.PRINTLN ("Students write homework"); + } A the } + classTeacherworkImplementswork{ - $ @Override $ Public voiddoWork () { -System.out.println ("Teacher grading homework"); - } the -}
Java Learning-The application of interfaces: Design patterns for factory methods