Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

I agree that most problems with interfaces derive from the multiple inheritance workarounds rather than the interfaces themselves. But from a non-purist perspective they're generally quite nice to work with, particularly when you're designing a large system. And using copy-and-paste instead of MI is IME never an actual problem because you can either define it in a common base class or move it to another class and use composition.

I also agree that for most of the standard library interfaces are not used enough. There are exceptions (collections, io) but they prove the rule.

As a workaround (to a workaround I guess) there's a good deal of activity around different AOP solutions to implement mixins, even applying them to compiled classes. The only problem with this is the typical problem with AOP -- you don't know by looking at the implementation what it can do or how it can be used, you've got to have knowledge from somewhere else (configuration files or other classes). Or you have to rely on an IDE to do it for you, and then you're tied to a particular tool, which may be even worse.

Chris
M-x auto-bs-mode


In reply to Re^4: Open to debate on mixins and traits. by lachoy
in thread Open to debate on mixins and traits. by BrowserUk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2024-04-25 15:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found