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 Источник] | ||
− | < | + | <pre> |
public class Main { | public class Main { | ||
Line 118: | Line 118: | ||
} | } | ||
} | } | ||
− | </ | + | </pre> |
Revision as of 20:27, 26 February 2016
Robot Builder
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(); } }