我有一个(有)关系。 Article类有一个Writer类。 我无法弄清楚的一件事是HTML代码应该写在哪里?
假设我们想要在以下块中显示结果:
<div id="article_block">
<h1>Article Title</h1>
<p>Article content</p>
<div id="writer_block"> writer name: <a href="writer_id"> Writer Name </a> </div>
</div>
我应该在Writer类中创建#writer_block并在Article类中创建#article_block,并将它们混合在Article类中?我应该怎么做,请帮助,我搜索了很多,但没有提到。
如果我的观点有问题,请不要告诉我“不要重新发明轮子”。我没有尝试这样做,我只是不知道方式,因为我是OOP的新人。
答案 0 :(得分:0)
一般而言,面向对象编程的想法是将您的问题分解为自包含的实体(对象),然后您可以将这些实体组合成最终的解决方案。鉴于Article
有一个Writer
,听起来你需要两个类,每个类一个。
首先使用Article
类进行处理,我想它应该有一个输出你的html的方法,让我们调用它output()
。在此方法中,您包含用于输出HTML的代码,因此调用Article->output()
应返回您需要的HTML,但您可以在此方法中嵌套对Writer.output()
的调用,该调用应执行相同的功能但特定于Writer
课程。在伪代码Article.output()
中应该:
Writer.output()
Writer
类基本上应该做同样的事情,你只需要为它输出不同的HTML。
通过编写Entity
类作为Article
和Writer
继承的抽象基础,您可以让自己的生活更轻松,然后您只需覆盖{{1派生类中的方法可以获得所需的行为。
cale_b是正确的,如果您的系统需要,将您的程序分解为模型/视图/控制器类型体系结构或模型/视图/展示器体系结构将使您的生活更加轻松成长。