php – 声明一个空类是不好的?

前端之家收集整理的这篇文章主要介绍了php – 声明一个空类是不好的?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在业余时间,我正在构建一个Sudoku求解器,试图在 PHP中获得OOP的支持.对于那些不知道的人来说,数独谜题最常见的形式是从1到9的9×9数字矩阵,其中3×3正方形以类似于tic-tac-toe的模式描绘.有些数字是提前填写的.拼图的目标是填写剩余的数字,这样任何行,列或3×3方块都不会包含多次相同的数字.

为此,我做了很多课程. Cell可以是Constraint的元素,它是行,列和3×3正方形.数独是约束和单元格的集合.我有一个SudokuSolver类,它动态地包含带有SolverHelper子类类声明的源文件,并实例化每个子类中的一个.帮助器具有Solve()函数,该函数将Sudoku作为参数.它检查约束并要求其细胞根据它发现的东西消除价值可能性.程序本身只是循环帮助程序,直到他们都没有报告他们能够消除任何可能性.

但是,行或列中的所有单元排列的事实具有在某些解决方案技术中利用的某些推论.所以我需要区分行/列和其他约束.我可以将行和列放在不同的数组中,这不是一个糟糕的解决方案.这具有允许良好优化机会的优点:例如,没有列与另一列相交.我还可以添加一个布尔属性IsLinear.

或者,现在我们回答我的问题:我可以将Constraint类子类化为LinearConstraint.但那个班级是空的.它不需要覆盖Constraint类中的任何内容.它将是一对花括号,就是这样; LinearConstraint对象因其类的实例而特殊.如果我想要或需要有与线性约束相关的特殊代码,我总是可以添加它.我的问题是:我正在考虑宣布并使用一个空课,这表明我做错了什么?我对这个过于抽象和理论吗?

空课并不坏.人们在各种其他场景中使用它;特别是在Exception专业化中.

我不相信它会比在Constraint类中添加一个标志更糟糕,以区分这两种类型.至少为了代码可读性,我更喜欢扩展类.

原文链接:https://www.f2er.com/php/135669.html

猜你在找的PHP相关文章