问题列表 - 第40683页

何时以及如何应用策略模式而不是装饰模式?

我正在学习设计模式并试图遵循Go4书.在页面:179,在装饰模式章节中,有一行说

"通过将策略的数量从一个扩展到一个开放式列表,我们可以递归地实现与嵌套装饰器相同的效果."

我没有得到这个声明.

策略侧重于拥有独立的算法,这些算法可以动态设置,并且不太了解它们所设置的客户端.

而装饰者并不完全独立于他们装饰的客户.实际上,它们与它们装饰的对象具有相同的超类型.

我在这里错过了一点吗?

design-patterns strategy-pattern

9
推荐指数
2
解决办法
5065
查看次数

如何制作/获取多尺寸.ico文件?

我只想拥有一个.ico文件,其中包含多个大小的图标图像.我想在跨平台桌面应用程序中使用它(因此,例如在Windows上,16x16大小用于应用程序的顶部栏,但当使用Alt-时显示各种打开的应用程序时使用32x32大小版本标签).一旦我有.ico文件,我知道如何在我的widget工具包中使用它来获得这个效果,但我不知道如何获得它.

我应该用什么程序来制作这样的文件?

icons

162
推荐指数
5
解决办法
13万
查看次数

将类型约束到接口的目的是什么?

允许以下内容的目的是什么?

class A<T> where T : IFoo {
    private T t;
    A(T t) { this.t = t; }
    /* etc */
}
Run Code Online (Sandbox Code Playgroud)

这与仅仅声明A需要一个IFoo需要它的地方有什么不同?

class A {
    private IFoo foo;
    A(IFoo foo) { this.foo = foo; }
    /* etc */
}
Run Code Online (Sandbox Code Playgroud)

我能看到的唯一区别是,在第一种情况下,我保证认为A<T>将始终与一个实例化T实现IFoo 所有对象的A将是相同的基本类型.但对于我的生活,我无法弄清楚为什么我需要这样的约束.

c# generics interface constraints

6
推荐指数
2
解决办法
201
查看次数

app引擎是否有Deploy Hook或Event?

每当有新的服务器部署时,我想增加模型的版本号.所以这背后的想法是:每次有部署我想运行​​一些代码.

这可能是在App Engine中使用钩子或事件吗?

我正在使用App Engine for Python.

python google-app-engine

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

可以在java中使用switch(java.lang.Object)吗?

我的应用程序需要具有类型的switch case语句String.

我需要这样的东西:

    Object list1 = "list1";
    Object list2 = "list2";
    Object list3 = "list3";

    Object option = "list1";
    switch (option) {
        case list1: // Do something
        case list2: // Do something
        case list3: // Do something
        default:    // Do something
    }
Run Code Online (Sandbox Code Playgroud)

有可能吗?

编辑:

是否更适合使用开关盒n而不是ifelse?一起使用?请评论一下?

java if-statement object switch-statement

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

将STL迭代器作为特定类型元素的任何容器的函数

我如何定义一个函数,它将迭代器作为输入作为任何类型的STL容器,但仅限于特定模板类型的那些.例如:

任何形式的迭代器std::list<Unit*>::iterator std::vector<Unit*>::iterator

我只想定义要采用的函数std::list<Unit*>::iterator,但是如果我们切换到不同的STL容器,我不想更改我的代码.

有没有办法用模板或其他方式做到这一点?

c++

17
推荐指数
4
解决办法
5468
查看次数

同步成本

在一个高度并发的Java程序中,并假设我的方法正确编写并正确同步,我想知道如何确定哪个更好:

void synchronized something() {
     ...
}
Run Code Online (Sandbox Code Playgroud)

要么

void something() {
     synchronized(this) {
         ...
     }
     // here do stuff no requiring synchronization
     .
     . // do computation 'A'
     .
     synchronized(this) {
         ...
     }
     // here do other stuff no requiring synchronization
     .
     . // do computation 'B'
     .
     synchronized(this) {
         ...
     }
}
Run Code Online (Sandbox Code Playgroud)

现在我意识到如果计算'A'和'B'需要花费很多时间,那么第二个版本显然更好.

然而,我的问题是:你知道第二个版本更高效吗?

第二个版本总是更快还是有几次获取/释放锁的隐藏成本?

如果我的计算'A'只是一些微不足道的事情,那该怎么办?

s.getString().substring( 0, 2 ).toLowerCase();
Run Code Online (Sandbox Code Playgroud)

java synchronization synchronized

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

在MySQL中存储持续时间的最佳方法是什么

我需要存储持续时间(分钟数和/或小时数和/或天数).我看过MySQL类型,但DATE和TIME类型似乎用于存储特定的日期.不是持续时间.

我考虑使用int来存储秒数,并在PHP中将其转换为显示.

php mysql

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

Ruby on Rails调试问题

大家好,我有关于Ruby on Rails的视频教程,我看到这个人在浏览器窗口中有一个底部脚本调试.问题是,我只有该视频教程的一部分(该部分是免费的),他对该调试没有任何说明.也许你们可以搞清楚.

这是一个截图:http://i55.tinypic.com/3537drp.png

我怎样才能做到这一点?谢谢.

debugging ruby-on-rails ruby-on-rails-3

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

如何修复<div>元素的高度?

我在样式表中定义了div的高度:

.topbar{
  width:100%;
  height:70px;
  background-color:#475;
}
Run Code Online (Sandbox Code Playgroud)

但是只要将文本输入div,div就会改变高度.

有任何想法吗?

html css

28
推荐指数
3
解决办法
15万
查看次数