php new 一个空类,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对象因其类的实例而特殊.如果我想要或需要有与线性约束相关的特殊代码,我总是可以添加它.我的问题是:我正在考虑宣布并使用一个空课,这表明我做错了什么?我对这个过于抽象和理论吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值