小编Ale*_*lex的帖子

观察者模式与MVC

我想知道观察者模式和MVC之间有什么区别.我有一些在学校用Java编写MVC程序的经验,但没有使用观察者模式的经验.(有人告诉我观察者模式意味着我在Java中使用了Observer类......我不认为这是一个很好的答案.)

感谢lottttt,请帮助我解决以下问题.

  1. 他们之间有什么区别?观察者模式不为控制器使用单独的类?

  2. 观察者模式和MVC之间有什么关系?我听说过两个不同的版本.

    • 第一个版本是,MVC是一种架构,Observer Pattern是一种设计模式.它们看起来很相似,因为MVC使用观察者模式.
    • 第二个版本是,观察者模式和MVC是两种不同的设计模式.
  3. 是否可以只使用其中一个?如果是这样,在什么情况下,你使用一个而不是为什么?

java model-view-controller design-patterns observer-pattern

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

如何查找多重集(允许重复的集合)的所有分区

给定一个可能包含重复项的数字集合,找到它的所有分区。(划分集合的所有可能方式。)

\n\n

例如,多重集 {1, 1, 2} 有 4 个分区:

\n\n

分区 1 = { {1}, {1}, {2} }\n 分区 2 = { {1}, {1, 2} }\n 分区 3 = { {1, 1}, {2} }\n分区 4 = { {1, 1, 2} }

\n\n

这是一个类似的问题如何查找集合的所有分区,但在该问题中,所有数字都是不同的。

\n\n

集合分区的定义: https ://en.wikipedia.org/wiki/Partition_of_a_set

\n\n

多重集\xef\xbc\x9a 的定义https://en.wikipedia.org/wiki/Multiset

\n\n

用任何通用编程语言编写的带有一些解释的解决方案将不胜感激。

\n\n
\n\n

更新\xef\xbc\x9a

\n\n

看来很多人都搞不清楚这个问题到底想问什么。不是给定集合的所有可能的子集。相反,它要求您找出划分给定数字集合的所有不同方法。

\n

algorithm combinations partitioning set

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

volatile函数与C++中的常量成员函数

很多人都说"易变成员函数完全类似于const的工作方式."

它们在指针被标记为const/volatile的意义上非常相似,它只能访问标记为const/volatile的成员函数.

但实际上将成员函数定义为const会产生额外的影响,这会使函数成为只读函数.对函数内部对象的任何修改都将导致编译器错误.在volatile成员函数中是否有这样的类比?

c++ const volatile

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

TCP/UDP 解复用如何工作?

我有以下声明。

“在 TCP 中,接收方主机使用所有源 IP、源端口、目标 IP 和目标端口将数据报定向到适当的套接字。而在 UDP 中,接收方仅检查目标端口号来定向数据报。”

上述说法属实吗?

如果是,是否意味着在 TCP 中,同一端口可以用于一个进程中的多个套接字,而在 UDP 中,一个进程中的某个端口只能使用一个套接字?不同进程中的套接字怎么样?TCP/UDP 中多个进程可以使用同一个端口吗?(编程语言:C/C++/Java)

如果没有,为什么?

sockets networking udp network-programming tcp

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

何时使用静态方法和字段?

我知道静态是什么,但不知道何时使用它.

静态变量:我只将它用于常量字段.有时候类中有几十个常量,所以使用静态常量可以节省大量内存.还有其他典型的用例吗?

静态方法:我在制作关于算法的类时使用它.例如,提供不同排序算法的类.它是否反对OOP设计?我认为保持这种方式比在每个需要使用它们的类中实现排序算法更好.我错了吗?什么是好用例?

此外,使用静态和非静态字段/方法之间是否存在性能差异?

java oop performance static

4
推荐指数
2
解决办法
9419
查看次数

PHP - 如何检查两个引用是否指向同一底层对象(内存地址)?

我有 Java 背景,对 PHP 有点陌生。

我想知道是否有一个 PHP 相当于 Java 的“==”操作,它基本上检查两个引用是否引用完全相同的底层对象。(PHP 的 == 和 === 更像 Java 的 equals 方法,它检查两个底层对象是否具有相同的值)

澄清:我的问题不是关于 PHP 中 == 和 === 之间的差异,也不是关于如何比较 PHP 中的值。我正在寻找一种方法来查看两个变量是否引用相同的对象/内存地址。相同的对象/内存地址意味着当我更新变量 $a 时,$b 也需要更新,反之亦然,因为 $a 和 $b 引用相同的东西。

php java reference object memory-address

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

Java:如何从通用类型对象实例中获取枚举类的值?

我想创建一个Enum编辑器,它将Enum类型作为其泛型.E是泛型类型,但仅限于Enum类型.如何从实例e中获取Enum类的值?

public class ComboBoxEnumEditor<E extends Enum<E>>{
    public ComboBoxEnumEditor(E e) {
        // how to get values of E from e?
        // attemp1:
        List values = e.getClass().values();
        // attemp2:
        List values = ((Enum.class)e.getClass()).values();
        // attemp3:
        List values = ((Enum.class)e.getClass()).values();
        // none of the above works... 
    }
}
Run Code Online (Sandbox Code Playgroud)

说我有一个枚举

public enum Location {
    Default( false, EAttributeLocation.MAIN_TABLE_IF_AVAILABLE ),
    Main( false, EAttributeLocation.MAIN_TABLE ),
    Overflow( false, EAttributeLocation.OVERFLOW_TABLE ),
    Separate( false, EAttributeLocation.SEPARATE_TABLE );
    ......
}
Run Code Online (Sandbox Code Playgroud)

我希望我的ComboBoxEnumEditor能够做到

{
   ComboBoxEnumEditor(new Location());
}
Run Code Online (Sandbox Code Playgroud)

请帮忙,谢谢.

java generics enums

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

Scala:如何根据值和标签获取枚举元素?

我有两个枚举类定义如下。

object Rating extends Enumeration {
  type Rating = Value
  val LOW: Value = Value("Low")
  val AVERAGE: Value = Value("Average")
  val HIGH: Value = Value("High")
}

object Reason extends Enumeration {
  type Reason = Value
  val MISSING_PARTS: Value = Value(1)
  val WRONG_ITEM: Value = Value(2)
  val DEFECTIVE_ITEM: Value = Value(3)
}
Run Code Online (Sandbox Code Playgroud)
  1. 如何根据字符串值“低”、“平均”和“高”获得评级

  2. 如何根据整数值 1、2、3 获取原因

  3. 如何根据 val 名称 MISSING_PARTS、WRONG_ITEM、DEFECTIVE_ITEM 获取原因

如果我没有使用正确的术语,请纠正我。我有 Java 背景,刚接触 Scala。我做了很多搜索,但要么它们已经过时,要么它们使用非常琐碎的示例,其中标签和值是相同的字符串,这没有多大帮助。

任何帮助将不胜感激。

enumeration scala

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

Python:在unittest框架的测试用例中将一次性初始化放在哪里?

我的测试很简单。我想向两个不同的服务器发送两个请求,然后比较结果是否匹配。

我要测试以下内容。

  1. 发送每个请求,并查看返回码是否有效。
  2. 比较每种测试方法中输出的不同部分

I do not want to send the requests in setUp method because it will be send over and over for each new test. I would rather want to send the requests at the initialization. (maybe in the init method). But I found a lot of people were against that idea because they believe I should not override the init method for some reason. (I do not know exactly why) If that's the case, where should I …

python unit-testing python-2.7 python-unittest

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

Python:我可以在Ansible的帮助下在yaml配置文件中使用变量和简单表达式吗?

我的程序是Python的,我的配置文件是yaml.我想在我的yaml文件中使用变量和一些数学表达式.(例如:$ var + $ offset)似乎Ansible支持两者,但我不熟悉Ansible,不确定我是否只能导入处理yaml配置的部分.任何帮助将不胜感激.

参考: Ansible - 设置变量值时可以使用算术吗?


更新:

理想情况下,我想使用Ansible的playbook功能作为库.这里描述的东西:http://oriolrius.cat/blog/2015/01/21/using-ansible-like-library-programming-in-python/但我无法使其工作似乎指令已过时.

python yaml ansible

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

Scala:为什么我的案例类实例具有相同的 hashCode?

我正在使用 Scala 2.11。

我有一个案例类Dimension,并创建了它的 3 个实例。当我将它们放入HashSet时,我惊讶地发现只有 1 被正确添加。然后我尝试调试,发现它们有相同的 hashCode。

我是 Scala 新手,但在 Java 方面有很多经验。我想知道为什么它们都具有相同的 hashCode,即使它们具有不同的字段,以及 Scala 案例类中 hashCode 方法的默认实现是什么?HashSet/HashMap 在 Scala 中如何工作?

这是我的代码示例。

object Echo {
  def main( args:Array[String] ):Unit = {
    var d1 = new Dimension
    d1.name = "d1"
    d1.dimensionId = "1"
    println("d1:" + d1.hashCode()) // d1, d2, d3 have the same hashCode

    var d2 = new Dimension
    d2.name = "d2"
    d2.dimensionId = "2"
    println("d2:" + d2.hashCode())

    var d3 = new Dimension
    d3.name = "d3" …
Run Code Online (Sandbox Code Playgroud)

hash scala hashset

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

psycopg2 - 更新 Json 列时如何转义单引号?

我正在尝试更新表的 json 列,但由于 json 中的一个值有单引号而卡住了。

我的 json 字符串看起来像这样

{"keyword": "women's shoes"}
Run Code Online (Sandbox Code Playgroud)

这是我的代码。

criteria_str = json.dumps(criteria)
sql_str = """update user_saved_search_backup set criteria = '%s'::json where id = %d;""" % (criteria_str, id)                    
write_cursor.execute(sql_str)
Run Code Online (Sandbox Code Playgroud)

注意:我使用的是缺少 json 函数支持的 postgreSQL 9.2,所以我必须在 python 中执行此操作

任何帮助,将不胜感激。

python sql postgresql psycopg2

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