Broken?
w0rp
devw0rp at gmail.com
Thu Mar 13 01:15:43 PDT 2014
I used to believe that virtual was a better default, but these
days I think the opposite. My reasoning is that inheritance is a
very poor tool for code reuse. The way I see it now, inheritance
is a tool for modelling "is a" relationships and variations on
objects, but it's bad to use it in an API as a "to implement your
business logic inherit here" thing.
You get much better code reuse out of functions, especially with
generic programming. (D being the number one generic language
with its templates and CTFE.) The more loosely coupled the data
becomes from the business logic, the higher application quality
appears to be and the more breakage decreases. Presenting an
interface for a library whereby the types can automatically be
overridden is a good way to lead people into writing code that's
going to break later and may burden the library's implementer
with supporting something he didn't know he'd need to support.
(e.g. in Nowak's ZIP library.)
More information about the Digitalmars-d
mailing list