Precisely. The problem though arises after you've implemented a system that uses an object of type Bar throughout and now you want to reimplement Bar while still maintaining the base class. In this case, you need to insert an implementation of Bar that can still access the base class without a namespace collision. The suggestion of using a factory addresses this because the factory deals with System::Bar - a namespace that can stay unique - while providing objects that can have their namespace location be moot. That is, the factory provides an object with the Bar interface but whether it's implemented as Custom::Bar or System::Bar is irrelevant. Now managing the factory hasn't been discussed but would require a registration process to indicate which implementation to use.

In reply to Re: Re: Re: Re: package namespaces by mab
in thread package namespaces by mab

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



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.