抽象的目的是为了 模块化 低耦合
怎么设计 你可以自己决定
不过 说句实话
你对oo思想可能还需更多的操作来锻炼
oo的思想不是看你抽象出多少对象 他的精髓是他的三大特性
封装 继承 多态 以及 重载
比如 人的电脑 在这个应该是基于 Class游戏者的子类
具有共同的属性 和共同的方法 比如func下子 func悔棋 等等
怎么设计 你可以自己决定
不过 说句实话
你对oo思想可能还需更多的操作来锻炼
oo的思想不是看你抽象出多少对象 他的精髓是他的三大特性
封装 继承 多态 以及 重载
比如 人的电脑 在这个应该是基于 Class游戏者的子类
具有共同的属性 和共同的方法 比如func下子 func悔棋 等等
你的例子让我有了点启发。
起初我也想过 有个父类,子类人和电脑继承父类,但是不知道这个父类 play的方法应该写什么,
可以把父类写成abstract class吗, 然后人和电脑都 继承这个absract类?
希望你能给点建议,谢谢
可以使用抽象类
抽象类的目的 简单点理解 就是抽取实体对象共同方法和属性存放在其中
是不能被实例化的 就像一个简单轮廓图
里面应该存放 人和电脑共同的方法
我上面说了 人和电脑 在下棋方面 一定会有下棋 悔棋 等等共同的方法
看你说play的方法 说明你代码的耦合度应该很高
abstract Gamer
{
abstract void putSomeWhere(x,y,color) //将棋子方法某个位置
abstract void backTo(Message,step)//悔棋,悔几步
abstract void Wait() // 请求暂停
....
}
别看一个小小的的下棋程序
相当好的建议, 完美。
我现在还在想着怎么把 悔棋这个方法加上,思路有点,就是用stack,走一步,就push到stack中,如果悔棋,就pop,但是还是不知道该怎么实现。这个stack去record应该属于chesspad 的方法吧, 然后人和电脑有悔棋的方法。 如果悔棋,就去调用chesspad 的这个方法,把chesspad 的这个位置为空。
不知道这个想法是否可行性。还有那个wait(),是不是直接调用wait()这个方法 就好啊?谢谢~