Re: Assigning functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 2, 2008 at 2:03 PM, Craige Leeder <cleeder@xxxxxxxxx> wrote:

> ons here) as a simple example something like this
> >
> >  class B {
> >   //...
> >   function doSomething() {
> >       return $this->c->doSomething();
> >   }
> >  }
> >
> >  which allows you this in A instances
> >
> >  $this->b->doSomething();
> >
> >  this is the preferred approach, since A and C instances are loosely
> coupled.
> >
> >  of course, if you wanted a to 'know' about c then you could do something
> >  like this,
> >
> >  class B {
> >   // ..
> >   function getC() {
> >      return $this->c;
> >   }
> >  }
> >
> >  giving you the ability to do this in A instances
> >
> >  $this->b->getC()->doSomething();
> >
> >  of course now A's knows about C's and your system is more tightly
> coupled.
> >
> >  -nathan
> >
>
> Why don't you just do a registry pattern instance then? IE:
>
> class Registry
> {
>  private satic objs;
>
>  public function __construct()
>  {
>
>    self::$objs = function_get_args();
>  }
>
>  public static function __get($obj)
>  {
>    return self::$objs[$obj];
>  }
> }
>
> class A
> {
> ...
> }
>
> class B
> {
> ...
> }
>
> $reg = new Registry( new A(), new B());
>
> Now A and B can access each other through Registry::A and Registry::B
>
> (that code may not function. It's just a general example)


that seems like overkill to me, and anyway, A instances need to get at C
instances.. the Registry would need to be globally available and even then,
if C's and A's could talk to each other through it, it still presents the
issue where A instances know about C instances.  its a design decision to be
sure, but likely the cleanest solution will have A instances not knowing
about C instances.

-nathan

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux