gpt4 book ai didi

java - "Realtime"中多用户编辑的软件设计模式

转载 作者:行者123 更新时间:2023-12-01 22:55:13 26 4
gpt4 key购买 nike

我正在寻找一种软件设计模式,它可以解决不同用户同时编辑文档的问题。我想将它用于 Android 应用程序。到目前为止我刚刚找到了Google Realtime API但这似乎不是我正在寻找的,因为它是针对网站的。目前我想我应该使用 observer pattern以及一些方法来检查是否进行了更改以及是否进行了更改。

最佳答案

考虑使用 ReadWriteLock 接口(interface)来实现您的设计。如果读者需要获取更新的文档(如果有人在其他阅读时更新了文档),您可以使用观察者模式在作者更新文档时通知读者。

public class Document {

private ReadWriteLock lock;
// other fields and methods are omitted for brevity

public Document(){
lock=new ReentrantReadWriteLock();
}

public void write(Object msg){
lock.writeLock().lock();
// write document
}

public Object read(){
lock.readLock().lock();
// write document
return "reading";
}
}


public class Reader implements Runnable {

private Document document;

public Reader (Document document){
this.document=document;
}

@Override
public void run() {
document.read();
}
}


public class Writer implements Runnable {

private Document document;
private Object msg;

public Writer(Document document,Object msg){
this.document=document;
this.msg=msg;
}

@Override
public void run() {
document.write(msg);
}
}

有关 ReadWriteLock 的更多详细信息,请查看: http://developer.android.com/reference/java/util/concurrent/locks/ReadWriteLock.html

关于java - "Realtime"中多用户编辑的软件设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24187902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com