问题列表 - 第1428页

使用战略模式的好处在哪里?

在维基百科上看过这个解释,特别是C++示例,并且没有认识到只定义3个类,创建实例和调用它们之间的区别,以及那个例子.我看到的只是将其他两个类放入流程中,无法看到哪里会有好处.现在我肯定我错过了一些明显的东西(树木) - 有人可以用一个明确的现实世界的例子来解释它吗?


到目前为止,我可以从答案中得到什么,在我看来,这只是一种更为复杂的方式:

have an abstract class: MoveAlong with a virtual method: DoIt()
have class Car inherit from MoveAlong, 
     implementing DoIt() { ..start-car-and-drive..}
have class HorseCart inherit from MoveAlong, 
     implementing DoIt() { ..hit-horse..}
have class Bicycle inherit from MoveAlong, 
     implementing DoIt() { ..pedal..}
now I can call any function taking MoveAlong as parm 
passing any of the three classes and call DoIt
Isn't this what Strategy intents? (just simpler?)
Run Code Online (Sandbox Code Playgroud)

[编辑 - 更新]我在上面引用的函数被替换为另一个类,其中MoveAlong属于属性,根据需要根据在这个新类中实现的算法设置.(与接受的答案中的内容类似.)


[编辑 - 更新] …

design-patterns strategy-pattern

12
推荐指数
3
解决办法
9820
查看次数

你如何组织Python模块?

在组织python模块时,我的Mac OS X系统很乱.我在我的硬盘上到处都是软件包,没有特定的系统来组织它们.

你如何保持一切可管理?

python module

14
推荐指数
3
解决办法
6354
查看次数

TSVN DNS错误:请求的名称有效,但未找到所请求类型的数据

我已经更新了我的TortoiseSVN客户端,现在我在尝试更新或提交到不同的存储库时遇到错误:

请求的名称有效,但未找到所请求类型的数据

关于如何解决这个问题的任何想法?Internet Explorer显示适当的URL就好了.

TortoiseSVN 1.5.3,Build 13783.

svn dns tortoisesvn

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

是否有用于绘制甘特图的LaTeX软件包?

是否有(或多或少)LaTeX包可以轻松绘制甘特图?

谢谢.

latex gantt-chart

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

以编程方式显示Eclipse插件中的视图

我有一个带有视图的Eclipse RCP应用程序的插件.在RCP应用程序中发生事件后,插件被实例化,调用其方法来填充插件的模型,但是我无法找到如何在不进入"Show View ..."菜单的情况下显示视图.

我认为工作台单例中会有一些东西可以处理这个问题,但我还没有发现任何地方.

eclipse rcp eclipse-pde eclipse-plugin eclipse-rcp

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

寻找完整的Delphi(对象pascal)语法

我需要一个完整的Object Pascal语法(最好是Delphi 2009).某些语法由帮助文件提供,但并未提供所有信息.所以我开始收集松散的信息.最近我将这些添加到或多或少完整的语法描述(EBNF之类).

虽然它看起来很广泛,但仍然存在漏洞,我确信缺少部分(特别是在.NET语法中).所以我问SO Delphi社区.您有任何信息或纠正错误吗?作为回报,我为社区提供了完整的语法.它可能会节省你一些时间;-).将来,我喜欢为其他语言做同样的事情(比如C#/ C++/Java).

我已经给出了语法描述:My Syntax sofar.或者如果您喜欢Text版本.(XHTML是从文本版本生成的).

请注意,语法集中在语法部分,因为词法部分实际上不是问题.

更新

我有一个新版本的Delphi语法.HTML版本.它包括包括2009年在内的各种版本.棱镜扩展仍在待办事项清单上.而且我不确定我是否会将它们保持在一起.

对于真正的纯粹主义者,它还包含完整的汇编程序代码(它不支持完整的100%的英特尔集,但只丢失了一些指令.).

delphi syntax grammar

28
推荐指数
2
解决办法
9861
查看次数

如何最好地在EAR中存储Subversion版本信息?

当收到错误报告或it-doesnt-work消息时,我的姓名首字母问题始终是什么版本?由于不同的构建处于测试的许多阶段,因此规划和部署这通常是一个非常重要的问题.

我是发布Java JAR(ear,jar,rar,war)文件的情况,我希望能够查看/在JAR中切换到作为已发布JAR源的同一分支,版本或标记.

如何最好地调整ant构建过程,以便svn checkout中的版本信息保留在创建的构建中?

我在思考:

  • 添加一个VERSION文件,但有什么内容?
  • 将信息存储在META-INF文件中,但在哪些属性下使用哪些内容?
  • 将源复制到结果存档中
  • 将svn:properties添加到所有源中,并在编译器保留的位置使用关键字

我最终使用svnversion方法(接受的anwser),因为它扫描整个子树而不是svn info,它只是查看当前文件/目录.为此,我在ant文件中定义了SVN任务,使其更具可移植性.

<taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask">
  <classpath>
    <pathelement location="${dir.lib}/ant/svnant.jar"/>
    <pathelement location="${dir.lib}/ant/svnClientAdapter.jar"/>
    <pathelement location="${dir.lib}/ant/svnkit.jar"/>
    <pathelement location="${dir.lib}/ant/svnjavahl.jar"/>
  </classpath>        
</taskdef>
Run Code Online (Sandbox Code Playgroud)

并非所有构建都会产生Web服务.由于应用程序服务器中的更新,部署之前的ear文件必须保持相同的名称.使文件可执行仍然是一个选项,但在那之前我只包括一个版本信息文件.

<target name="version">
  <svn><wcVersion path="${dir.source}"/></svn>
  <echo file="${dir.build}/VERSION">${revision.range}</echo>
</target>
Run Code Online (Sandbox Code Playgroud)

参考:
svnrevision:http://svnbook.red-bean.com/en/1.1/re57.html
svn info http://svnbook.red-bean.com/en/1.1/re13.html subclipse
svn task:http: //subclipse.tigris.org/svnant/svn.html
svn客户端:http://svnkit.com/

java svn ant release

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

自定义控件中的双缓冲子控件(C#)

我想双缓冲包含按钮的自定义控件.我已经尝试了各种方法来双重缓冲控件; SetStyle,BufferedGraphicsContext和绘制到位图.这些都适用于控件的自定义绘图,但它们都不会处理将按钮绘制到后台缓冲区.我该如何实现这一目标?

c# drawing doublebuffered winforms

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


在UpdatePanel中使用ASP.NET FileUpload控件的问题?

我遇到了一个问题,我在UpdatePanel中有一个FileUpload控件.当我尝试保存更改并上传文件时,找不到任何文件.如果我删除UpdatePanel似乎一切正常.

任何想法为什么会这样?是否有解决方法?

截图

asp.net ajax file

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