Design patterns. Builder. Agent007 Builder
From AsIsWiki
(Difference between revisions)
(Created page with "<div style='max-width:700px;text-align:justify;'> Builder ==Agent007 Builder== [https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%BE%D0%B8%D1...") |
|||
Line 15: | Line 15: | ||
Agent007.Builder agentBuilder = new Agent007.Builder(188, 90); | Agent007.Builder agentBuilder = new Agent007.Builder(188, 90); | ||
− | agentBuilder.setIntelligence(8) | + | agentBuilder.setIntelligence(8).setCharisma(7).setArmour(5).setLifes(3); |
− | + | ||
− | + | ||
− | + | ||
Agent007 seanConnery = agentBuilder.build(); | Agent007 seanConnery = agentBuilder.build(); | ||
− | agentBuilder.setIntelligence(7) | + | agentBuilder.setIntelligence(7).setCharisma(8).setArmour(3).setLifes(3); |
− | + | ||
− | + | ||
− | + | ||
Agent007 pierceBrosnan = agentBuilder.build(); | Agent007 pierceBrosnan = agentBuilder.build(); |
Revision as of 10:42, 27 February 2016
Agent007 Builder
public class Main { public static void main(String[] args) { Agent007.Builder agentBuilder = new Agent007.Builder(188, 90); agentBuilder.setIntelligence(8).setCharisma(7).setArmour(5).setLifes(3); Agent007 seanConnery = agentBuilder.build(); agentBuilder.setIntelligence(7).setCharisma(8).setArmour(3).setLifes(3); Agent007 pierceBrosnan = agentBuilder.build(); System.out.println(seanConnery.toString()); System.out.println(pierceBrosnan.toString()); } } class Agent007 { private final int height; // рост private final int weight; // вес private final int intelligence; // интеллект private final int charisma; // харизма private final int armour; // броня private final int lifes; // кол-во жизней public static class Builder { // Обязательные параметры private final int height; private final int weight; // Дополнительные параметры private int intelligence = 1; private int charisma = 1; private int lifes = 1; private int armour = 1; public Builder(int height, int weight) { this.height = height; this.weight = weight; } public Builder setIntelligence(int val) { intelligence = val; return this; } public Builder setCharisma(int val) { charisma = val; return this; } public Builder setLifes(int val) { lifes = val; return this; } public Builder setArmour(int val) { armour = val; return this; } public Agent007 build() { return new Agent007(this); } } private Agent007(Builder builder) { height = builder.height; weight = builder.weight; intelligence = builder.intelligence; charisma = builder.charisma; armour = builder.armour; lifes = builder.lifes; } @Override public String toString() { return "Agent007{" + "height=" + height + ", weight=" + weight + ", intelligence=" + intelligence + ", charisma=" + charisma + ", armour=" + armour + ", lifes=" + lifes + '}'; } }