Hi Juan, Components are records in order to support the dependency-injection features of `component/start-system`, which work via `assoc`.
There are potentially many other ways to do dependency injection, but I found `assoc` to be practical. If you want to create a component that has a Lifecycle but no dependencies, then `reify` will work just fine. If you want to create a component that has dependencies but no Lifecycle, then an ordinary Clojure map will work. –S On Wednesday, April 29, 2015 at 2:41:54 PM UTC+1, Juan A. Ruz @tangrammer wrote: > > Hi guys, > I'm just wondering the pros/contras that justify to choose defrecord vs > reify as component fn constructor. > > in the component README we can read > "To create a component, define a Clojure record that implements the > Lifecycle protocol." > > Yes I know that "defrecord creates an immutable persistent map which > implements a protocol." but I think that the same thing can be achieved > with reify (BTW: "om" way to define component) over a persistent map... > > Do you think there are more reasons to set defrecord as default base fn > for components? > > Thanks in advance > Juan > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.