On Sun, 15 Apr 2012, Holger Gast wrote:
In fact, the pattern you used is quite common amongst Java developers,
they just call it "Factory Pattern".
I've heard of this recent addition to the OO vocabulary to fix some early
conceptual problems of the approach. That is "object Graph" part only.
Just for a reference: factories have been discussed in the seminal book
on patterns, Gamma et al. "Design Patterns: Elements of Reusable
Object-Oriented Software", in 1995. (There are two variants here:
abstract factories and factory methods, but this is only a detail.)
I usually make jokes at a longer historical range. The classic OO times
are about 10 years earlier than the Gang-of-Four stuff. When I got to
that again around 2007, I was surprised what is now called
"object-oriented" compared to 15 years before.
Anyway, this thread is diverging. I merely wanted to express my relief
that I can now work in the classic ADT style from the 1970/80-ies almost
unencumbered by ooddities in Isabelle/Scala.
The explanation by Alex clarified things especially well: Java does allow
all constructors to be private for a public class, but the way Odersky
writes classes requires an additional syntactic device to indicate the
visibility of the the main constructor.
Concerning style: Scala admits many styles, which is both an advantage and
disadvantage, also due to general language complexity. For example, the
scalaz community writes Scala like Haskell, which might look a bit odd to
many. The style of Isabelle/Scala is that of Isabelle, i.e. the best from
many decades of Isbelle/ML transferred to Scala in a reasonable way.
Makarius
_______________________________________________
isabelle-dev mailing list
[email protected]
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev