On Wed, Feb 24, 2010 at 11:53 AM, Malte Schwerhoff <
mun123456...@googlemail.com> wrote:

> I am currently working on a research project in the context of my
> Master's at the ETH Zürich. The project's (long-term) goal is to develop
> a contract language (pre-, postconditions, invariants, the usual stuff)
> to be able to verify certain aspects of Scala traits.
>
> For starters, I'd like to exemplify typical patterns (or use-cases) of
> Scala traits. So far I have the "stackable modifications" pattern, the
> "interface enrichment" pattern (both taken from the "Programming in
> Scala" book [1]) and the "functionality extension" "pattern" as
> exemplified in [2] (p. 14, German document).
>

A simple pattern that I see often is hand-coded proxies / direct delegation,
e.g.

trait Store {
  def read(key: String): Any
  def write(key: String, value: Any): Unit
}

trait ActsLikeStore extends Store {
  val store: Store
  def read(key: String) = store.read(key)
  def write(key: String, value: Any) { store.write(key, value) }
}

I'm curious to hear where in the pattern landscape you'd classify Scala
2.8's collection traits like SeqLike, MapLike and such.

alex

-- 
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to lift...@googlegroups.com.
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en.

Reply via email to