zoukankan      html  css  js  c++  java
  • 建造者模式和工厂模式的区别

    它们目的都是创建一个复杂的对象

    工厂模式注重的是整体对象的创建方法,而建造者模式注重的是对象的创建过程,创建对象的过程方法可以在创建时自由调用。

    看一下建造者模式的例子就明白了:

     1 public class EmployeeBuilder
     2 {
     3     private int id = 1;
     4     private string firstname = "first";
     5     private string lastname = "last";
     6     private DateTime birthdate = DateTime.Today;
     7     private string street = "street";
     8 
     9     public Employee Build()
    10     {
    11         return new Employee(id, firstname, lastname, birthdate, street);
    12     }
    13 
    14     public EmployeeBuilder WithFirstName(string firstname)
    15     {
    16         this.firstname = firstname;
    17         return this;
    18     }
    19 
    20     public EmployeeBuilder WithLastName(string lastname)
    21     {
    22         this.lastname = lastname;
    23         return this;
    24     }
    25 
    26     public EmployeeBuilder WithBirthDate(DateTime birthdate)
    27     {
    28         this.birthdate = birthdate;
    29         return this;
    30     }
    31 
    32     public EmployeeBuilder WithStreet(string street)
    33     {
    34         this.street = street;
    35         return this;
    36     }
    37 
    38     public static implicit operator Employee(EmployeeBuilder instance)
    39     {
    40         return instance.Build();
    41     }
    42 }

    调用:

    void main(){
    Employee emp1 = new EmployeeBuilder().WithFirstName("Kenneth")
                                                .WithLastName("Truyers");
    
    Employee emp2 = new EmployeeBuilder().WithBirthDate(new DateTime(1983, 1,1));
    }
  • 相关阅读:
    ASP.NET 页面访问控制
    数据库设计——范式
    C#接口
    员工签到签退
    sharepoint content type publishing
    安卓自动化测试环境搭建
    SharePoint 2016 Document Center Send To Connection
    ADO.NET DBHelper 类库
    SQL语句总结
    移动端屏幕适配问题
  • 原文地址:https://www.cnblogs.com/fanfan-90/p/11999850.html
Copyright © 2011-2022 走看看