小编Ric*_*ket的帖子

状态模式:为什么上下文类不实现或继承State抽象接口/类?

我正在读关于状态模式.我刚刚开始,所以当然我首先阅读整篇维基百科的文章.

我注意到本文中的两个示例都有一些基本抽象类或Java接口,用于通用State的方法/函数.然后有一些状态从基础继承并以不同的方式实现这些方法/功能.然后是一个Context类,它有一个State类型的私有成员,并且在任何时候都可以等于其中一个实现的实例.该上下文类也实现了相同的方法,并将它们传递给当前的状态实例,然后有一个额外的方法来改变状态(或者根据设计,我理解状态的改变可能是对其中一个实现的方法的反应) .

为什么这个上下文类没有专门"扩展"或"实现"通用的State基类/接口?

state design-patterns

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

Java是否有内置的方法将元素添加到按字母顺序排列的列表中?

Java 5库中是否已经提供了一个方法来将元素添加到字母中List

换句话说,假设我有List<String>三个元素{"apple","cat","tree"},我想添加String"香蕉",同时List按字母顺序排列; 是否有一种简单的方法可以简单地将它添加到List,以便List现在有四个元素{"apple","banana","cat","tree"}

java

3
推荐指数
2
解决办法
499
查看次数

C#更优雅替代foreach-search

以下是类中方法的全部内容:

public Foo GetFooByInfoName(string name)
{
    Debug.Assert(name != null, "name is not an optional argument");
    foreach (Foo f in storedFoos.Values)
    {
        if (name.Equals(f.FooInfo.Name))
        {
            return f;
        }
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

我显然已经更改了名称,因此假设FooInfo是必需的,Name不能简单地成为类Foo的属性.

有没有更优雅的方法来编写这种方法?我对C#不是很熟悉,但我觉得有一种扩展方法可以将这种方法变成一个2-liner.

注意我正在寻找可读性,这不是减少行数的竞赛.我只是认为如果C#有办法Foo在一行中搜索命名,那么该方法会更清楚.

(我正在使用C#3.5)

c#

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

当我每帧更新其位置时,OpenGL会闪烁

我正在学习OpenGL,刚开始接触照明.我启用了灯光和灯光0,在我的init方法中将其ambient/diffuse/specular设置为默认值,然后每帧我做这样的事情:

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// do my 3rd-person camera transforms and rotations
glLightfv(GL_LIGHT0, GL_POSITION, {0.1f, 0.0f, 0.0f});
Run Code Online (Sandbox Code Playgroud)

(注意,如果它有点错误,我正在使用JOGL用Java编写我的应用程序,所以我从每一行中修改了gl.和GL.以便为所有C++人员提供更好的可读性:))

然后我继续画三角形等等,最后我做了一个glFlush().

奇怪的问题是,当我运行我的应用程序时,灯光闪烁.我没有在我的整个程序中调用glLightfv(除了上面提到的,我的init方法中的调用,我调试它以确保它只运行一次).它闪烁得非常快,屏幕显示撕裂.我的场景绘图中的任何一点都没有glDisable(GL_LIGHTING); 不是我认为应该导致被点燃的物体闪烁.

为了调试的目的,我还注释掉了我的绘图代码块,似乎没有什么东西可以破坏光照 - 当然,我在拍摄场景之前写了所有这些并进行了测试,所以我认为没有理由它应该是错误.

基本上我知道这不是很多,但是之前有其他人有过这个问题吗?有一些我找不到的简单解决方案吗?请索取任何可以帮助您的其他信息.最后,如果我根本无法得到答案,我可能不得不打破并编写一个测试用例,我可以在这里发布整个渲染代码并演示问题.

这是一个非常糟糕的动画GIF我试图制作...但它有点显示我在说什么,只要光是零星的.点亮的框架是它应该看起来的样子.当我慢慢降低到5fps时,它也不是那么闪烁,更像是随机打开或关闭.我不明白......

谢谢!!

opengl jogl

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

这个(UML?)图表的术语是什么,它可以制作什么程序?

图http://img526.imageshack.us/img526/2506/picture1lx.jpg

这个问题非常明显.该图表是否有技术名称?它被认为是UML吗?其次,可能会使用什么样的程序来生成它?我想做一个属于我自己的.我正在运行Windows 7,但欢迎其他操作系统上的程序建议.

language-agnostic uml

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

将数据表存储在JavaScript变量中

我正在制作一个特殊的"计算器",它接受用户输入并在表格中查找数据以查找结果.但我在如何最好地做到这一点上遇到麻烦,以避免大量的if语句.

例如,假设有一些单选按钮组,每个按钮组合都有一个唯一的值,我想向用户显示.我会在JavaScript中使用哪种数据结构来计算每个按钮组合并查找相应的值?


编辑:根据要求,这里有一些示例数据:

| Type  | Color  | Output value |
| small | red    | 21.9         |
| small | blue   | 27.3         |
| small | yellow | 26.8         |
| large | red    | 19.2         |
...
Run Code Online (Sandbox Code Playgroud)

然后向用户呈现两个无线电设备或下拉,一个用于类型,一个用于颜色.选择组合并按下按钮后,将显示输出值.

在我的具体情况下,我有一个包含4个不同列和许多组合的表.它看起来像一个数组,但如果它是一个对象数组,那么我必须在每一行上键入列名(即:){type: 'small', color: 'red', output: 21.9}, ...- 有没有办法保持对象的关联性质与紧凑的数组语法,如['small','red',21.9]

javascript

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

在数组中添加整数的问题

我正在尝试遍历我的总计,以获得我的网络应用程序的总计.到目前为止,我正在使用的代码如下:

function calcAllFields() {
    var name = parseFloat($('div [name = total[]]').text());
    var totArray = $.makeArray(name);
    var total = 0;
        for (var i = 0; i < totArray.length; i++) {
                total += totArray[i];
                }
    $("#target1").text(total);
}
Run Code Online (Sandbox Code Playgroud)

不是添加整数,而是将某些东西作为字符串读取.说我要加200 + 50,而不是250我得到20050.谁能指出我做错了什么?谢谢!

javascript jquery

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

我们应该使用什么语言来创建包含大量表格,颜色和图像的打印材料?

我们正在寻找一种生成打印文档的好方法,如下所示,其中包含与其他页面共享的内容(下面的扫描文档是102页小册子中的一页).例如,"Desired Outcome(s)"部分在几个其他页面上重申.当我们想要调整或添加它时,我们当前必须找到文本所在的所有位置,然后在它们之间复制/粘贴.我相信我不必向你解释为什么这会有问题.

这些页面目前是用Adobe制作的东西或其他东西,我不是很喜欢它,所以我很高兴被赋予了将它们移植到避免手动复制粘贴的东西的任务.

这是LaTeX的工作吗?我只是涉足它,但如果你认为LaTeX是这项工作的正确工具,请指出我正确的方向开始学习.

总是有任何Web语言从数据库中读取并输出HTML(例如PHP和MySQL;将我们的共享文本块存储在MySQL数据库中,或类似的东西),但过去我尝试格式化时遇到了很多问题用于印刷; 有没有一个很好的指南来制作打印格式的HTML页面?我知道CSS media ="print"属性,但这是关于我在这个领域的知识程度.


样本打印页面http://img442.imageshack.us/img442/5214/jobinstructionbreakdown.png

css printing latex programming-languages adobe-indesign

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