0

我需要知道我是否以正确的方式做某事。

对于给定的页面,我正在为页面本身实例化一个对象。我们称该对象为 myPage。在页面内我有容器(通常是 div 标签)。当我去一个管理组件处理一个特定的 div 时,我也会为此实例化一个对象。我们称之为 myDiv。

现在,对于给定的 div,我想要处理的事情之一就是该 div 的样式。所以通常我会认为我只是放入一些与样式相关的方法,例如 myDiv.getPadding() 或 myDiv.getBackgroundColor() 等。

但我突然想到,我最终可能还有其他对象,我可能还需要为这些对象做与样式相关的事情。

鉴于此,我应该创建一个单独的 style.cfc 吗?那会被 div 对象扩展吗?或者样式对象会扩展 div 对象吗?我的理解是,更具体的对象扩展了不太具体的对象,但我不确定在这种情况下哪个更具体:是引用特定 div 的 div 对象,还是提供特定集合的样式对象数据?

提前致谢!

4

2 回答 2

3

首先,除非您需要即时编写样式,否则我会创建一个或多个样式表并动态链接它们,而不是动态创建它们。

但是,假设您确实需要即时创建它们...

我不会让控件(div)扩展样式,反之亦然。样式不是 div 的更具体定义,反之亦然。我要做的是创建一个样式对象,它只包含给定元素或元素集的显示元数据。这可以包含在您的控件/div 对象(不是扩展)中,也可以是页面对象的一部分。样式肯定与控件有关,但我不会将它们结合起来,因为这使得分离内容和表示变得更加困难。

于 2010-09-30T19:39:31.363 回答
0

我绝不是说这是最好的方法,但如果你真的想使用 CFC 来设置页面样式,你可以让 DivTag.cfc 扩展一个 HtmlTag.cfc,它将充当所有 HTML 标记的基类。然后,您可以将 StyleAttribute.cfc 组合到您的 HtmlTag.cfc 中以使用任何样式属性,例如背景颜色和填充。那么你最终会调用像 myDiv.getStyle().getPadding() 这样的函数。

通常,您应该真正尝试支持组合(“has a”)而不是继承(“is a”),并且不要对组件层次结构过于疯狂。在这种情况下,我建议使用 CSS 文件来设置页面样式。

于 2010-10-01T17:05:26.637 回答