Design patterns. Builder. Robot Builder
From AsIsWiki
(Difference between revisions)
Line 7: | Line 7: | ||
[https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%BE%D0%B8%D1%82%D0%B5%D0%BB%D1%8C_%28%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29 Источник] | [https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%BE%D0%B8%D1%82%D0%B5%D0%BB%D1%8C_%28%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29 Источник] | ||
− | < | + | <source lang="java"> |
public class Main { | public class Main { | ||
Line 118: | Line 118: | ||
} | } | ||
} | } | ||
− | </ | + | </source> |
Revision as of 21:06, 26 February 2016
Robot Builder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | public class Main { public static void main(String[] args) { Designer designer = new Designer(); RobotBuilder combatRobotBuilder = new CombatRobotBuilder(); designer.setRobotBuilder(combatRobotBuilder); designer.constructRobot(); Robot robot = designer.getRobot(); System.out.println(robot.toString()); } } class Robot { private String battery = "" ; private String movement = "" ; private String mission = "" ; public void setBattery(String battery) { this .battery = battery; } public void setMovement(String movement) { this .movement = movement; } public void setMission(String mission) { this .mission = mission; } @Override public String toString() { return "Robot{" + "battery='" + battery + '\ '' + ", movement='" + movement + '\ '' + ", mission='" + mission + '\ '' + '}' ; } } abstract class RobotBuilder { protected Robot robot; public Robot getRobot() { return robot; } public void createNewRobot() { robot = new Robot(); } public abstract void buildBattery(); public abstract void buildMovement(); public abstract void buildMission(); } class CombatRobotBuilder extends RobotBuilder { public void buildBattery() { robot.setBattery( "nuclear" ); } public void buildMovement() { robot.setMovement( "flying" ); } public void buildMission() { robot.setMission( "scout" ); } } class HomeRobotBuilder extends RobotBuilder { public void buildBattery() { robot.setBattery( "solar" ); } public void buildMovement() { robot.setMovement( "wheels" ); } public void buildMission() { robot.setMission( "housemaid" ); } } class Designer { private RobotBuilder robotBuilder; public void setRobotBuilder(RobotBuilder rb) { robotBuilder = rb; } public Robot getRobot() { return robotBuilder.getRobot(); } public void constructRobot() { robotBuilder.createNewRobot(); robotBuilder.buildBattery(); robotBuilder.buildMovement(); robotBuilder.buildMission(); } } |