NBA之建造者模式

128 阅读1分钟

Design Pattern:

Builder pattern builds a complex object using simple objects and using a step by step approach. This type of design pattern comes under creational pattern as this pattern provides one of the best ways to create an object. 模式:将物体的构建交给builder类 故事场景:NBA每个球队都是由球员组成的,我想知道勇士队是怎么构成的,我只要拥有球队建造类暴露的build方法,然后内部实现是隐藏的 我可以吧库里,杜兰特等勇士队,也可以把杜兰特,威少组等 组成雷霆队

杜兰特 库里
  public interface Player {

      String name();

  }

  public class Curry implements Player {
    @Override
    public String name() {
        return "Curry";
    }
  }
  public class Durant implements Player {
      @Override
      public String name() {
          return "Durant";
      }
  }


Team:用来组成team 与 TeamBuilder:具体组成哪个队
  public class Team {

      List<Player> team = new ArrayList<>();

      public void addPlayer(Player people){
          team.add(people);
      }


      public String getTeamPlayers(){
          StringBuilder sb = new StringBuilder();
          for (Player people: team){
              sb.append(people.name()).append(",");
          }
          return sb.toString();
      }
  }

  public class TeamBuilder {

      public Team warriors(){
          Team team = new Team();
          team.addPlayer(new Curry());
          team.addPlayer(new Durant());
          return team;
      }

  }


实验的开始
    public class BuilderDemo {


        public static void main(String[] args) {

            TeamBuilder teamBuilder = new TeamBuilder();
            Team team = teamBuilder.warriors();
            System.out.println(team.getTeamPlayers());
        }
    }