|
|
1
9
我觉得这设计不好。如果单元需要知道它的位置,它应该保存它自己,并为网格提供访问它的方法。 |
|
2
4
我会用以下方式来看待它:
这样,您就可以将“单元”视为网格中的坐标。 |
|
|
3
2
为什么单元格需要知道其在网格中的位置?似乎手机不应该知道它的位置。 如果您仍然需要这个-单元格可以保存指向其封闭网格的指针,并且可以向它请求位置(如,在单元格类:getgrid().getlocation(this))。 |
|
|
4
1
最好的方法是向网格询问特定单元格的位置。 另一种解决方案是给单元格一个指向其构造函数中网格的指针。当单元格被请求定位时,它可以从网格函数返回定位。 |
|
|
5
1
如果你想让手机知道它的位置,就把它放进手机里。没有必要把它放在类之外,也没有必要在不同的网格中使用单个单元格(因为您已经想得到它的位置,这就设置了这样的限制)。 或者,如果需要知道位置的单元方法是从网格中调用的,那么我将把位置作为参数传递给该方法。 在一些非常特殊的情况下,您可能会将对网格的引用存储在一个单元中,或者将其作为参数传递给它的方法,但在引入太多耦合时,您会觉得这是错误的。 |
|
|
6
1
这很简单,只需让单元的构造函数获取其位置,假设这是构造函数:
你为什么要这样做?首先,因为在创建一个单元格后,它的位置几乎是固定的,除非您要执行像“insert”这样的特殊操作。我不建议在网格上调用方法,也不建议在本地保留网格实例。 |
|
|
7
1
对我来说,似乎没有必要让手机知道它在网格中的位置。重要的是,不是单元格从网格中获取其位置,而是网格在需要时将位置提供给单元格!所以网格调用单元格的一个方法来实现这一点。不是反过来。 最合乎逻辑的是网格包含许多单元格,因此它“拥有”这些单元格(例如,创建单元格、移动单元格或其他)。因此,单元不应该知道关于网格的任何信息。 单元格本身包含一些信息。根据网格中的位置,可能需要刷新此信息或其他信息。然后,您可以在单元格中有一个方法,由网格调用以执行此操作。如果需要,该方法可能接受位置参数,但单元本身不将它们作为成员保存。 |
|
8
1
正如尼尔建议的,如果细胞需要知道它的位置,它应该存储它。 尽管如此,我认为手机不需要知道它的位置。网格负责管理单元格,包括它们的位置、告诉它们在哪里绘制自己等等。单元格应负责包含哪些单元格——例如,数据、格式信息等。 因此,单元不需要知道它在网格中的位置。它可能需要做一些类似于绘制自己的事情,但这应该根据网格传递的屏幕坐标来完成。网格应控制绘制哪些单元格以及在何处绘制。细胞应该只做他们被告知的事情。 |
|
|
9
0
网格本身可以用一些函数来搜索一个单元,这个函数可以通过拥有一个缓存或者一个单元到n个整数元组的字典/映射来优化。 |
|
|
10
0
我会考虑在每个单元格对象中存储位置,网格对象应该包含一个单元格集合,即创建的数量。这样我就可以解决一些我要面对的问题。 |
|
|
11
0
如果是
这里唯一需要你考虑的问题是谁的责任是知道地点。 |
|
|
12
0
我想你说的是,一个单元格在网格中的位置不是其固有的
我不确定这一区别有多重要,但如果你愿意,有两种选择:
再说一次,我们让这件事变得比现在更难——我不确定是否有必要
|
|
13
0
工厂方法设计模式 定义一个用于创建对象的接口,但是让您的子类决定要实例化哪个类。工厂方法定义了一个用于创建对象的接口,但是让子类决定要实例化哪些类。 |
|
|
simply lemon · python上链表的添加方法 1 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 1 年前 |