Паттерн: Прототип (Prototype)
Исходник: PrototypeFleetRun.java, язык: java [code #432, hits: 9127]
автор: this [добавлен: 22.06.2007]
  1. package prototype;
  2.  
  3. import java.io.IOException;
  4.  
  5. import abstractFactory.FleetFactory;
  6. import abstractFactory.FleetRun;
  7. import abstractFactory.americanFleet.CityJet;
  8. import abstractFactory.americanFleet.Dodge;
  9. import abstractFactory.americanFleet.GeneralMotorsTruck;
  10. import abstractFactory.rusFleet.Kamaz;
  11. import abstractFactory.rusFleet.Liaz;
  12. import abstractFactory.rusFleet.Vaz2110;
  13.  
  14. public class PrototypeFleetRun extends FleetRun {
  15. protected String planFile = "abstractFactory/fleet.properties";
  16.  
  17. public static void main(String[] args) {
  18. FleetRun program = new FleetRun();
  19. // get the fleet plan
  20. try {
  21. program.ReadPlan();
  22. } catch (IOException e) {
  23. System.out.println("Problems with config file: " + program.getPlanFile());
  24. }
  25.  
  26. // create definite factory
  27. FleetFactory factory = program.GetFactory(program.getPlan().getProperty("factory"));
  28.  
  29. // create fleet using created factory
  30. program.CreateFleet(factory);
  31.  
  32. System.out.println(program.getMyFleet());
  33. }
  34.  
  35.  
  36.  
  37. public FleetFactory GetFactory(String id) {
  38. if ("ru".equals(id)) {
  39. return new PrototypeFleetFactory(
  40. new Vaz2110("empty", 12, true),
  41. new Liaz("empty", 20, true),
  42. new Kamaz("empty", 53, 8, true));
  43. } else {
  44. return new PrototypeFleetFactory(
  45. new Dodge("empty", 5, false),
  46. new CityJet("empty", 42),
  47. new GeneralMotorsTruck("empty", 4, false, true));
  48. }
  49. }
  50. }
Сущность Client
Клиентский код создания парка авто через прототип.

Классы абстракной фабрики автомобилей.
Тестировалось на: java 1.5.0_04

+добавить реализацию