Skip to content

Instantly share code, notes, and snippets.

@davidgrenier
Created April 18, 2012 19:25
Show Gist options
  • Save davidgrenier/2415922 to your computer and use it in GitHub Desktop.
Save davidgrenier/2415922 to your computer and use it in GitHub Desktop.
Extract behavior
// bad way
let formatOrder blah bleh clientName =
let order = getOrder blah
let message = getMessage bleh
let reseult =
if clientName = "boeing" then
sprintf "<Order orderId=\"%d\"/>" order
else
sprintf "Order.orderId:%d" order
result
// good way
let getFormatBehavior = function
| "boeing" -> sprintf "<Order orderId=\"%d\"/>"
| _ -> sprintf "Order.orderId:%d"
let formatOrder blah bleh clientName =
let behavior = getFormatBehavior clientName
let order = getOrder blah
let message = getMessage bleh
let reseult = behavior order
result
// another good way
let formatOrder blah bleh behavior =
let order = getOrder blah
let message = getMessage bleh
let reseult = behavior order
result
//and then
getFormatBehavior clientName |> formatOrder blah bleh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment