Fluent Interface
ist ein weiteres Pattern, das mir in der letzten Zeit immer häufiger über den Weg gelaufen ist. Ansich ist es gar keine schlechte Sache. Was genau ein solches Fluent Interface ist, zeigt das folgende Codebeispiel:
Interface:
interface FluentPerson { FluentPerson setAddress(Address address); Address getAddress(); FluentPerson setFirstName(String firstName); String getFirstName(); FluentPerson setLastName(String lastName); String getLastName(); }
Class
class PersonImpl implements FluentPerson { private Address address; private String firstName; private String lastName; public FluentPerson setAddress(Address address) { this.address = address; return this; } public Address getAddress() { return this.address; } public FluentPerson setFirstName(String firstName) { this.firstName = firstName; return this; } public String getFirstName() { return this.firstName; } public FluentPerson setLastName(String lastName) { this.lastName = lastName; return this; } public String getLastName() { return this.lastName; } }
Diese “fast”-Bean-Klasse unterscheidet sich eben darin, dass die Setter der Klasse einen Rückgabewert auf sich selbst hat. Das erlaubt beim Setzen der Adresse ein direktes Zugreifen auf die weiteren Klassenattribute der Person-Klasse. Das FluentInterface erlaubt eine sogenannte MethodChain um die Klassenattribute “fießend” zu setzen.
FluentInterface
class FluentInterfaceExample { public static void main(String args[]) { Address address = new Address(); // do some address stuff ... // fluentInterface way: FluentPerson personFluent = new PersonImpl(); personFluent.setAddress(address).setFirstName("joe").setLastName("doe"); // Standard Java-Bean way FluentPerson person = new PersonImpl(); person.setAddress(address); person.setFirstName("joe"); person.setLastName("doe"); } }
Category: Computer, Java | Tags: Bean, fluent interface, java, pattern


