Your SlideShare is downloading. ×
0
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
The Fluent Interface Pattern
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

The Fluent Interface Pattern

7,855

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,855
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
60
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. The Fluent Interface PatternLars-Erik KindbladSenior ConsultantBlog: kindblad.com
  • 2. A common problem in most software projects Technical debts increases over time and the code gets harder and harder to maintain and add features to | Sector, Alliance, Offering
  • 3. Feature delivery for most projects Technical debt Complex and messy code Code and logic is duplicated No common coding standardFeatures Delivered No strict architecture ++ Time | Sector, Alliance, Offering
  • 4. Ideal Feature DeliveryFeatures Delivered Time | Sector, Alliance, Offering
  • 5. How to reach ideal delivery? Software development is complex Not a single solution but a mix of many different things • Write a lot of code • Important to understand the business model • Readable & maintainable code over fancy code • Simplicity over complexity • Decide on a common coding standard • Reuse code instead of code duplication • Create a project framework with common code and logic • Design Patterns – follow generic solutions to commonly occurring problems o 100s of design patterns exists – Factory Pattern, MVC Pattern, Command Pattern, Fluent Interface Pattern etc. • ++ | Sector, Alliance, Offering
  • 6. The Fluent Interface Pattern One of many design patterns that can contribute to a better code base Fluent Interfaces makes the code easier to read and easier to use due to a simpler API that requires less code Consists of 2 principles: • Method chaining - Traditional code requires one line per command, method chaining allows multiple commands per line • More readable API – The code can be read like a sentence. Optional as it requires more typing due to longer names and more code to write Popular to use in frameworks: Moq, Fluent Nhibernate, FluentData etc. | Sector, Alliance, Offering
  • 7. Example – Find a personTraditional Code:Fluent Interface Code:Or: | Sector, Alliance, Offering
  • 8. A more readable Fluent InterfaceOr: | Sector, Alliance, Offering
  • 9. Designing Fluent Interfaces - Method vs. Property Use a method when having to accept one or more values Use a property when not having to accept any values Use a method to finish the call | Sector, Alliance, Offering
  • 10. Traditional Code | Sector, Alliance, Offering
  • 11. Fluent Interface Code | Sector, Alliance, Offering
  • 12. Example #2 – A List of PersonsTraditional Code:Fluent Code: | Sector, Alliance, Offering
  • 13. Traditional Code | Sector, Alliance, Offering
  • 14. Fluent Interface Step 1: Add Gateway Pattern | Sector, Alliance, Offering
  • 15. Step 2: Add Fluent Interface Pattern | Sector, Alliance, Offering
  • 16. Examples from other FrameworksMoq:FluentData: | Sector, Alliance, Offering
  • 17. When to use Fluent Interfaces Anywhere where it makes the code easier to read and easier to use Typically in methods that are often invoked Together with the Gateway Pattern to hide complex 3rd party code or legacy code Frameworks | Sector, Alliance, Offering
  • 18. QUESTIONS? | Sector, Alliance, Offering
  • 19. www.capgemini.comThe information contained in this presentation is proprietary. ©2010 Capgemini. All rights reserved

×