问题列表 - 第24527页

以不会成为"上帝对象"的方式设计课程

我正在设计一个允许我在图形上绘制一些函数的应用程序.每个函数都将从我将传递给此图形类的一组点中提取.

有不同类型的点,都是从MyPoint类继承的.对于某种点,它只是将它们按原样打印在屏幕上,其他点可以被忽略,其他的则被添加,因此存在某种与它们相关的逻辑可能变得复杂.

如何实际绘制图形不是这里的主要问题.困扰我的是如何使代码逻辑使得这个GraphicMaker类不会成为所谓的God-Object.

制作这样的东西会很容易:

class GraphicMaker {
    ArrayList<Point> points = new ArrayList<Point>();

    public void AddPoint(Point point) {
        points.add(point);
    }

    public void DoDrawing() {
        foreach (Point point in points) {
            if (point is PointA) {
                //some logic here
            else if (point is PointXYZ) {
                //...etc
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

你会怎么做这样的事情?我有一种感觉,正确的方法是将绘图逻辑放在每个Point对象上(因此Point中的每个子类都知道如何绘制自己),但会出现两个问题:

  1. 有些点需要知道GraphicObject类中存在的所有其他点才能知道如何绘制自己.
  2. 我可以从Graphic类公开制作很多方法/属性,这样所有的点都可以引用Graphic类,并且可以根据需要制作所有的逻辑,但这不是一个很大的代价.想要上神课吗?

c# java oop design-patterns god-object

5
推荐指数
1
解决办法
626
查看次数

subversion问题 - 提交访问权限

我是设置subversion的新手,但最初当我创建一个存储库时,我的所有团队成员都可以毫无问题地更新和提交.它有一个问题,所以我们决定重新创建它,但现在只有我可以提交更改.我的用户名/密码在他们的计算机上不起作用,所以我确定它是明显而愚蠢的东西,但我只是不知道是什么导致它.

passwd和svnserve.conf文件与适用于所有人的原始存储库相同.

有任何想法吗?提前致谢.

svn

5
推荐指数
1
解决办法
354
查看次数

找到Python解释器的完整路径?

如何从当前正在执行的Python脚本中找到当前运行的Python解释器的完整路径?

python path

359
推荐指数
3
解决办法
19万
查看次数

快速检查字符数组是否为零的方法

我在内存中有一个字节数组.查看数组中所有字节是否为零的最快方法是什么?

c memory optimization performance 32-bit

19
推荐指数
2
解决办法
2万
查看次数

什么更有效:System.arraycopy或Arrays.copyOf?

Bloch中的toArray方法ArrayList使用System.arraycopyArrays.copyOf复制数组.

public <T> T[] toArray(T[] a) {
    if (a.length < size)
        // Make a new array of a's runtime type, but my contents:
        return (T[]) Arrays.copyOf(elementData, size, a.getClass());
    System.arraycopy(elementData, 0, a, 0, size);
    if (a.length > size)
        a[size] = null;
    return a;
}
Run Code Online (Sandbox Code Playgroud)

如何比较这两种复制方法以及何时应该使用哪种方法?

java arrays performance

72
推荐指数
5
解决办法
6万
查看次数

如何在C中将数组初始化为0?

我需要在C中使用一个大的空数组作为全局数组.除了输入外,还有什么方法可以做到这一点

char ZEROARRAY[1024] = {0, 0, 0, /* ... 1021 more times... */ };
Run Code Online (Sandbox Code Playgroud)

c arrays initialization

150
推荐指数
2
解决办法
25万
查看次数

iPad OpenGL ES FPS太慢了!

我目前正在为iPad开发OpenGL ES 1.1应用程序

它以完整的768x1024 iPad分辨率运行,具有纹理,多边形和作品

只有大约30帧/秒!(对我来说不够快)

我很确定它不是我的代码,因为当我降低分辨率时,FPS增加,最终在iPod touch resoultion正常60

是否有其他人遇到这种FPS减速?我应该缩小尺寸然后放大吗?...还有,升级到opengl 2.0会增加速度吗?

任何指导都非常感谢!

opengl-es ipad

1
推荐指数
1
解决办法
2529
查看次数

TFS,SVN和GIT有什么区别?

我使用Microsoft Visual SourceSafe进行版本控制.我想改变这种方法,并使用更新的软件来完成这项工作.这三个应用程序有什么区别?哪一个更好?

这些解决方案是否与visual studio集成?

svn git version-control tfs visual-studio

46
推荐指数
3
解决办法
4万
查看次数

如何正确定义和使用Python生成器

我想从列表中定义一个生成器,它将一次输出一个元素,然后以适当的方式使用此生成器对象.

a = ["Hello", "world", "!"]
b = (x for x in a)
c = next(b, None)
while c != None:
    print c,
    c = next(b, None)
Run Code Online (Sandbox Code Playgroud)

这种while方法有什么不对或可以改进的吗?有没有办法避免在循环之前分配'c'?

谢谢!

python generator while-loop

1
推荐指数
1
解决办法
658
查看次数

当magic_quotes_gpc打开时,是否有必要使用mysql_real_escape_string()?

为了防止SQL注入,是否有必要使用mysql_real_escape_string(),何时magic_quotes_gpc开启?

mysql sql-injection

0
推荐指数
1
解决办法
4137
查看次数