English 中文(简体)
Wrong OO架构,共享物体和依赖物? 这里可能有一米没有设计模式?
原标题:Wrong OO architecture, sharing objects and dependencies? Maybe i m missing a design pattern here?

OK, i m 创建小型PHP应用程序。 目前的结构类似:

$client = new AppNameClient;
$model = $client->getModel();
$model->getNode();

一切都在这里美丽。 客户负责通过Socket将指挥与小型C应用程序挂钩和管理。 我在这里玩弄建筑。 客户:植被模型回报。 在Model期间,通过施工商在模型内注入客户。 与此类似:

public function getModel()
{
    return new Model( parameter , $this);
}

......

// Model
public function __construct($param, Client $client)
{
    $this->setClient($client);
    // ...
}

然而,在《示范法》中:诺德,即希望回到诺德的一个案例。 然而,与Model不同,我不想再注入客户。 但我们必须这样做。 现在是这样做的时候了:

public function getNode()
{
    return new Node( parameter , $this->getClient());
}

我确信这是正确的。 必须有一米缺失的东西...... i) 理解和使用依赖性注射,但一刀切的注射集装箱不会解决我的问题。

最佳回答

我真的可以谈论你的整个设计,因为你没有担任大多数职务,但我认为你缺乏一种模式。 联络处的核心设计原则之一是,你不要求数据/目标标的标的,然后根据这一数据/标的操作,请大家反对为你所设计的那部分内容进行简单编辑,但你可能希望考虑做的不是“重新安置”。

为了在我自己的设计中强行实施这一规定,I NEVER公司在第一张通行证上建立了集束器和接头机(Well,我只字不提许多NEVER公司根本就建立了集束机)。 后来 我只有在我能够避免的时候才会去做和补充(现在仍然需要他们,我常常认为......)。

还有一点是完全避免继承,直到你绝对是解决不重复法典或混淆事情的唯一途径。 问题在于,问题是以我本国语言写成的,因此,我确实能够告诉大家你正在做什么。

问题回答

它希望你想把客户储存在定点(Client)内,或者你不会从Client(Client)返回。

如果你将制定法典,并批准(Client) 我可以核实这一点。

setClient($client){
    $this->client = $client;
}

getClient(){
    return $this->client;
}

It isn t the Model s job to get the client (or vice versa!). That s the factory s problem! Your methods should look like so:

$client = new AppNameClient($model);

您永远不应把工厂逻辑与你的商业逻辑混为一谈,因为这使得无法进行测试。





相关问题
Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

JSON with classes?

Is there a standardized way to store classes in JSON, and then converting them back into classes again from a string? For example, I might have an array of objects of type Questions. I d like to ...

Object-Oriented Perl constructor syntax and named parameters

I m a little confused about what is going on in Perl constructors. I found these two examples perldoc perlbot. package Foo; #In Perl, the constructor is just a subroutine called new. sub new { #I ...

Passing another class amongst instances

I was wondering what is the best practice re. passing (another class) amongst two instances of the same class (lets call this Primary ). So, essentially in the constructor for the first, i can ...

Where can I find object-oriented Perl tutorials? [closed]

A Google search yields a number of results - but which ones are the best? The Perl site appears to contain two - perlboot and perltoot. I m reading these now, but what else is out there? Note: I ve ...

热门标签