Java创建和销毁对象的几种方式

悠悠 2022-07-13 06:00 343阅读 0赞

创建对象的几种方式

  1. 构造器
  2. 静态工厂方法
  3. 通过Builder
    不直接生成想要的对象,而是让客户端利用所有必要的参数调用构造器,得到一个builder对象,然后客户端在builder对象上调用类似于setter的方法,来设置每个可选参数,最后在客户端调用无参的build()方法来生成对象。下面是一个简单的示例:

    //builder pattern
    public class NutritionFacts{

    1. private final int servingSize;
    2. private final int servings;
    3. private final int calories;
    4. private final int fat;
    5. private final int sodium;
    6. private final int carbohydrate;
  1. public static class Builder{
  2. //required
  3. private final int servingSize;
  4. private final int servings;
  5. //optional
  6. private int calories =0;
  7. private int fat =0;
  8. private int sodium =0;
  9. private int carbohydrate =0
  10. public Builder(int servingSize, int servings){
  11. this.servingSize = servingSize;
  12. this.servings=servings;
  13. }
  14. public Builder calories(int val){
  15. calories=val;
  16. return this;
  17. }
  18. public Builder fat(int val){
  19. fat=val;
  20. return this;
  21. }
  22. public Builder sodium(int val){
  23. sodium=val;
  24. return this;
  25. }
  26. public Builder carbohydrate(int val){
  27. carbohydrate=val;
  28. return this;
  29. }
  30. //build 构造对象
  31. public NutritionFacts build(){
  32. return new NutritionFacts(this);
  33. }
  34. }
  35. private NutritionFacts(Builder builder){
  36. servingSize = builder.servingSize;
  37. servings = builder.servings;
  38. calories = builder.calories;
  39. fat = builder.fat;
  40. sodium = builder.sodium;
  41. carbohydrate = builder.carbohydrate;
  42. }
  43. }
  44. //客户端调用
  45. NutritionFacts cocaCola = new NutritionFacts.Builder(20, 8).calories(100).sodium(35).carbohydrate(27).build();

发表评论

表情:
评论列表 (有 0 条评论,343人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java创建对象方式

    java是一种面向对象语言,所以我们在写代码过程中会创建很多对象,那java创建的对象到底有多少种呢?其中每种的差别又有哪些呢?请允许我慢慢道来 1.使用new关键字 这是