我一直想知道在编写代码之前我在想太多还是过少。如果我不确定将来需要进行哪些可能的更改,这对我来说尤其如此。我不知道我应该如何灵活或抽象化我的课程。我举一个简单的例子。
您想编写一个可以在计算机上玩二十一点的程序,并且您是喜欢实验的人。您开始编写甲板的代码,但随后您意识到二十一点可能具有1、2、4或任意数量的甲板。您考虑了这一点,但随后您意识到甲板可能会被更改并且没有任何价值十的卡。然后,您决定甲板应完全通用,以允许任何数量的西服或军衔。然后,您决定应该可以将套牌的规则更改为西服的标准数量乘以唯一等级,以等于套牌中的总牌数...您可以看到我要去的地方。
我的问题是,关于班级的灵活性,是否有任何准则?
最佳答案
支持极简主义和封装,避免使用不必要的功能。
根据需求进行设计当然是好事,但应尽量减少因您不使用或将来可能使用而造成的混乱情况。考虑并实施您确定需要的东西很好。
当您理解并指定一个“未来问题”时(特别是在将来的那个时候),您通常会以与今天的解决方案不同的方式来解决它。