依赖
类的结构或行为的变化会影响其他相关的类,然后这两个类之间存在依赖关系.它不一定相同,反之亦然.当一个类包含另一个类时,就会发生这种情况.
组成
组合是聚合的特例.以更具体的方式,受限制的聚合称为组合.当一个对象 包含另一个对象时,如果所包含的对象不存在而不存在容器对象,那么它就称为组合.
依赖
class Employee {
private Address address;
// constructor
public Employee( Address newAddress ) {
this.address = newAddress;
}
public Address getAddress() {
return this.address;
}
public void setAddress( Address newAddress ) {
this.address = newAddress;
}
}
Run Code Online (Sandbox Code Playgroud)
组成
final class Car {
private final Engine engine;
Car(EngineSpecs specs) {
engine = new Engine(specs);
}
void move() {
engine.work();
}
}
Run Code Online (Sandbox Code Playgroud) 是否有可能在创建后"冻结"python dict,以便无法为其添加新密钥?只能更改现有的键值.
如果没有,您如何知道何时更改现有的键值对,以及何时添加新的键值对?
我知道Python线程一次只能执行一个字节码,那么为什么线程库会提供锁?我假设如果一次只执行一个线程,则不会发生竞争条件.
该库提供锁,条件和信号量.这是同步执行的唯一目的吗?
更新:
我做了一个小实验:
from threading import Thread
from multiprocessing import Process
num = 0
def f():
global num
num += 1
def thread(func):
# return Process(target=func)
return Thread(target=func)
if __name__ == '__main__':
t_list = []
for i in xrange(1, 100000):
t = thread(f)
t.start()
t_list.append(t)
for t in t_list:
t.join()
print num
Run Code Online (Sandbox Code Playgroud)
基本上我应该启动100k线程并递增1.返回的结果是99993.
a)如果有GIL同步和避免竞争条件,结果如何不是99999?b)甚至可以启动100k OS线程吗?
看到答案后更新2:
如果GIL没有真正提供一种方法来执行简单的操作,例如原子递增,那么将它放在那里的目的是什么?它对于讨厌的并发问题没有帮助,那么它为什么要到位呢?我听说过C扩展的用例,有人会举例说明吗?
我使用了supervisor和gen_server行为,我可以理解它们的实际用途.但是,我并不真正理解gen_fsm和gen_event行为的使用.有人可以通过实例来澄清吗?
提前致谢
这是我的表结构:
File | Version | Function
1 | 1 | 1
1 | 2 | 1
1 | 3 | 1
1 | 2 | 2
2 | 1 | 4
3 | 2 | 5
Run Code Online (Sandbox Code Playgroud)
我需要它只返回这些行
1 | 3 | 1
2 | 1 | 4
3 | 2 | 5
Run Code Online (Sandbox Code Playgroud)
含义我只想要每个文件具有最新版本的函数.
我不希望下面的结果,即不是最新版本的唯一函数ID
1 | 3 | 1
1 | 2 | 2
...
Run Code Online (Sandbox Code Playgroud)
我看过如何用SQL中的另一列选择MAX(列值),DISTINCT的行?,但它返回最新的唯一函数ID.
查询需要与sqlite3兼容.
我正在使用 sqlite 作为数据库之一运行 Django 项目。我想在运行项目时运行最新的 SQLite 版本。我的意思是最新的 sqlite 二进制文件,而不是 sqlite python 库。
我有一个不是系统默认值的本地 sqlite3 二进制文件,我无法更改默认的 sqlite3 版本。
我没有使用 Django 的 ORM,而是将其替换为独立的 SQLAlchemy 版本。
我找到了一个相关链接,但这与运行最新的 python sqlite 库版本有关。
我知道继承、组合、聚合等如何用 Java 实现并用 UML 绘制。但是如果 A 类导入 B 类,我们如何在 UML 中注意到这一点呢?这两个类在类图中是否以任何方式关联,如果是的话,以什么方式关联?
例子
import com.example.Book;
public class Library {
public void doSomething(Book book) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud) 似乎大多数 Web 服务器(Apache、Nginx、Lighthttpd)都将静态文件与 html 文件(不同的配置)分开提供服务。为什么是这样?
我正在尝试使用 Apache 部署我的 Django 应用程序,到目前为止,部署一直很简单。在开发过程中,Django 服务器提供静态文件,我无需费心去配置它。为什么它在真正的网络服务器中有所不同?
Javascript switch语句是严格比较还是通过类型转换进行比较?
python ×3
java ×2
oop ×2
sqlite ×2
uml ×2
apache ×1
architecture ×1
behavior ×1
comparison ×1
composition ×1
dependencies ×1
dictionary ×1
django ×1
erlang ×1
erlang-otp ×1
file ×1
gil ×1
immutability ×1
import ×1
javascript ×1
keyvaluepair ×1
locks ×1
nginx ×1
sql ×1
sqlalchemy ×1
static ×1