当我们知道班级变得太多了?

时间:2010-03-25 05:50:14

标签: php oop

我开始用PHP学习课程。根据我与其他语言的经验,我可以告诉班级与功能不同。那么,我们如何发现我们的班级是否开始过于重要以及我们如何最小化其影响?


编辑:问题是如何发现写作类问题的模式。亲身。我希望根据经验给出答案。

6 个答案:

答案 0 :(得分:2)

如果某些代码可以从应用程序的多个不同位置调用多次,则应使用函数,以避免复制粘贴代码。

应该使用一个类来表示一个实体:

  • 某事
  • 的数据
  • 以及可应用于这些数据的方法(行为)

没有太多的真正概念:重要的是该类包含使实体的内容;仅此而已。

答案 1 :(得分:2)

当你开始在该类中搜索一段代码时,一个类“太多了”。你知道它必须存在,但你继续滚动类代码。这是一个强烈的迹象,表明这个班级“太多了”。

同样顺便说一下。寻求功能。如果你正在寻找你的功能,你可以在一个地方“太多”。

答案 2 :(得分:2)

描述你班级的作用。如果你在描述中使用“和”这个词,那就太多了。一堂课应该做一件事。功能也是如此。

答案 3 :(得分:1)

我真的不明白你的意思是“太多太重要以及我们如何最小化其影响”。 Object-oriented programming是一种范式,因为它是一种更自然的方式来思考和组织问题集的解决方案,而不仅仅是函数 - 数据操作。因为考虑大多数问题是一种更自然的方式,真正的问题应该是“我们怎样才能判断我们何时没有有效地使用面向对象并重构我们的代码以改进我们的解决方案?”

答案 4 :(得分:1)

通常,Function用于减少数据冗余。虽然您的类将所有函数都包装在一个中,但也保护您的数据和其他只能由其自己的类对象使用的函数。

答案 5 :(得分:1)

我在你的帖子中估计你可能正在使用Classes作为函数的存储库,它们之间没有真正的实现。 (我可能错了,如果我只是得出结论,那就很抱歉)

类非常有用,是OOP的基础。

使用非常滥用的类比:

想象一下像PaperSheet。

PaperSheet具有大小,颜色,形状,材质等属性。

你可以用纸张写东西,比如写一些东西,用折纸折(= P)等等。

所以使用编程语言:

PapaerSheet是一个班级

尺寸,颜色,形状,材料是变量,类PaperSheet的属性

Write_Something_In_It,Origami_It是此类的功能

要执行Write_Something_In_It,你只需提供一些文字,但要执行Origami_It,你需要提供更多说明,因为制作一只天鹅不同于制作一只蟾蜍。

所以,编码会是这样的:

<?
   class PaperSheet {
        var $size;
        var $color;
        var $material;
        var $shape;

        function Write_Something_In_It($text) {
            /// Some Code
        }
        function Origami_It($OrigamiShape) {
            if ( $OrigamiShape < $this->$shape ) {
                          echo "You can do the origami";
                  } else {
                          echo "You can't do the origami";
            }

        }
    }
?>

因此,PaperSheet类定义了纸张是什么以及您可以用它做什么。由于办公室里有很多标识性的纸张,每次从堆叠中取出纸张时,你都会“创建”一个新的纸张类对象。

您甚至可以创建100个PaperSheet对象(当然,命名方式不同)并将它们存储在一个文件柜(数组)中。

现在,您在上面看到的变量只应在PaperSheet的上下文中有意义,并且只应在PaperSheet类的上下文中使用。

Smae代表功能。

如果你有像Table这样的其他类,它们也有大小和颜色,如果它有A4纸的大小则没有意义。

你不应该能够折叠桌子(尽管如果可以的话,这将是非常棒的。)

因此,在OOPL中,类非常有用,因为它们不会包含相关代码,因为它们提供了更直观的使用方式。

希望有所帮助