我需要構建一個使用方法鏈接的類。我理解方法鏈的概念。例如:Fluent接口(方法鏈接)向後導航
class Company
{
private String companyName;
public setCompanyName(String companyName)
{
this.companyName = companyName;
return this;
}
public Person addPerson(String name)
{
person = new Person();
person.setName(name);
return person;
}
}
class Person
{
private String name;
private String address;
private bool license
public Person setName(String name)
{
this.name = name;
return this;
}
public Person hasDriverLicense(bool license)
{
this.license = license;
return this;
}
public Person setAddress(String address)
{
this.address = address;
return this;
}
}
//in some other class/method i do:
Company company = new Company()
.setCompanyName("SomeCompany")
.addPerson("Mike")
.setAddress("Street 118");
但我需要更進一步。我需要能夠做到這一點:
Company company = new Company()
.setCompanyName("SomeCompany")
.addPerson("Mike")
.setAddress("Street 118");
.addPerson("Jane")
.setAddress("Street 342");
.hasDriverLicense(true)
所以,你可以看到我需要能夠繼續鏈接。方法addAddress
並不總是鏈中的最後一個方法。它可以是Person
類中的任何方法。
有沒有一種很好的方法來實現這個功能?也許有方法擴展或什麼的?
任何幫助/示例非常感謝。
我必須問... *爲什麼*你想這一切都是一個連續嚴重的方法?難道你不能只存儲公司並從那幾次調用addPerson? 'var company = ...; company.addPerson(...)setAddress(...)。 company.addPerson(...)。setAddress(...);'? –
甚至更好...只是對象/集合初始值設定項? var company = new Company {Name =「SomeCompany」,People = {new Person {Name = Mike「,Address =」Street 118「},new Person {Name =」Jane「,Address =」Street 342「,HasDriverLicence = (在IDE中它看起來更漂亮,而不是全部壓縮成一個註釋!) –
來自我的+1對於出軌;-) – Vitaliy