我有一个问题,我有一个类Item,它有一个Subitems 列表.当子项已被更改或删除时,我需要父项来了解它.
我当时认为观察者模式会在这里派上用场.但是,对于扩展Observerable和实现扩展和实现的Item类,它是否有意义Observer?
干杯.
每当我使用以下代码在文档中插入图像时,
var cursor = DocumentApp.getActiveDocument().getCursor();
var image = cursor.insertInlineImage(resp.getBlob());
Run Code Online (Sandbox Code Playgroud)
光标位于图像之前。似乎将光标放在插入的内容之后更有意义,就像它已被粘贴一样。
我发现Document.newPosition可以实现这一点,但使用起来似乎很复杂。
这是我收集的:
我开始尝试这样做,但认为我做错了什么,因为它太复杂了。是否有一个简单的功能可以将光标向前或向后移动一定数量的元素,例如使用箭头键?
编辑:我找到了一个简单的图像插入解决方案。光标后面总是有一个图像,所以这是有效的:
var position = doc.newPosition(cursor.getElement(), cursor.getOffset()+1);
doc.setCursor(position);
Run Code Online (Sandbox Code Playgroud)
然而,如果任意向前移动光标,就必须考虑cursor.getOffset()+1超出的情况ContainerElement。
如何编写输入类型="文本"的模式(它不能是数字,验证不能用JS),只允许我输入数字,最小值:1和最大值:5000?
<input type="text" name="someName" id="someId" required pattern=""/>Run Code Online (Sandbox Code Playgroud)
我试图在 data.table 的行之间查找模式,同时仍然保持行之间的数据链接。这是一个简化的示例:
Row ID Value
1 C 1000
2 A 500
3 T -200
4 B 5000
5 T -900
6 A 300
Run Code Online (Sandbox Code Playgroud)
我想在连续行中搜索“ATB”的所有实例,并从值列中输出整数。理想情况下,我也想对实例数量进行分类。输出表如下所示:
String Frequency Value1 Value2 Value 3
ATB 1 500 -200 5000
CAT 1 1000 500 -200
Run Code Online (Sandbox Code Playgroud)
由于 data.table 包似乎面向提供按列或按行的操作,我认为这应该是可能的。然而,我完全不知道从哪里开始。任何正确方向的指示将不胜感激。
谢谢!
我读了一个Decorator设计模式的例子.我知道这种设计模式动态地修改了一个特定实例的行为.我在下面给出的例子也是可以理解的.我不明白的一点是,当我调用c.getCost()牛奶对象时,它返回1.5.只有Simplecoffee的getCost()回报1,但是从哪里呢c.getCost奶回报1.5吗?
任何人都可以解释Milk类和Simplecoffee类之间的链接,以及getCost()在使用milk对象调用时如何执行方法流?该getCost()方法如何返回1.5?
//Decorator Design Pattern
interface Coffee {
public double getCost();
public String getIngredients();
}
class Simplecoffee implements Coffee {
public double getCost() {
return 1;
}
public String getIngredients() {
return "Coffee";
}
}
abstract class CoffeeDecorator implements Coffee {
protected Coffee decoratedcoffee;
protected String ingredientseparator = ":";
public CoffeeDecorator(Coffee decoratedcoffee) {
this.decoratedcoffee = decoratedcoffee;
}
public double getCost() {
return decoratedcoffee.getCost();
} …Run Code Online (Sandbox Code Playgroud) 我正在运行Windows 7 64位.在我以前使用Java 6安装Java 7(PS3媒体服务器的一部分)之后,我的Eclipse(Indigo Service Release 2,Build id:20120216-1857)CVS停止工作到VPN上的服务器.我使用Cisco AnyConnect VPN客户端版本2.5.2019进行连接.每当我尝试连接到存储库时,我得到的错误如下:
Could not connect to :extssh:username@example.com:/cvsroot/username/project: CVS communication error: org.eclipse.team.internal.ccvs.ssh2.CVSSSH2ServerConnection$SSH2IOException: Permission denied: connect
Permission denied: connect
Run Code Online (Sandbox Code Playgroud)
我可以通过强制Eclipse在Java 6 JVM下运行来解决它.这不是防火墙问题,因为我关闭了Windows防火墙,并且Wireshark也没有显示DNS查询之外的流量.
我的JRE(Java 6和Java 7)都是32位版本; 他们的路径分别是
C:\Program Files (x86)\Java\jre6
C:\Program Files (x86)\Java\jre7
Run Code Online (Sandbox Code Playgroud) 免责声明:我不使用函数式语言; 只是试图理解FP的某些部分.
谷歌建议使用lambdas的第一顺序函数可以提供与策略模式相似的功能的文章.
然而,我们需要匹配数据和相应的lambda.使用OO设计,这是通过虚拟方法表(VMT)自动完成的,即类型本身带有推理执行流程所需的重要信息,使得新行为更容易添加(开放封闭原则):继承和覆盖.旧代码只是保持不变.在这方面,功能模式匹配似乎是静态的,并且不允许这种动态.
当然,可以编写一个可配置的匹配行为来根据给定的数据选择lambda,但这不是我们在开箱即用的OOP中所拥有的吗?
是否存在设计模式(如访问者,策略,状态等)或其他一些设计原则,以帮助设计一个良好的解决方案来模拟实体的状态流,例如任务实体.
任务以新状态启动,然后进入BeingHandled状态,然后进入WaitingForApproval,然后它可以移动到Finished或NotApproved,这实际上是回到了 带有其他信息的BeingHandled,说它是从WaitingForApproval返回的.
所以一般来说我们有一些一般的流程,然后我们可以在其中有一些内部流程.
谢谢,
ashilon
我知道采用列表输入的方法可以使用模式匹配,如下所示:
testingMethod [] = "Blank"
testingMethod (x:xs) = show x
Run Code Online (Sandbox Code Playgroud)
我的问题是,我可以使用if函数吗?例如,如果我有一个需要检查function2输出模式的function1,我该怎么做呢?我正在寻找这样的东西:
if (function2 inputInt == pattern((x:xs), [1,2,3])) then
Run Code Online (Sandbox Code Playgroud)
这有可能在哈斯克尔做吗?
在大多数情况下,当我们编写工厂方法时,它是一堆if可以继续增长的条件.编写这种方法的最有效方法是什么(if条件最少)?
public A createA(final String id) {
if (id.equals("A1")) {
return new A1();
}
else if (id.equals("A2")) {
return new A2();
}
return null;
}
Run Code Online (Sandbox Code Playgroud) java ×3
oop ×2
architecture ×1
cvs ×1
data.table ×1
eclipse ×1
factory ×1
google-docs ×1
haskell ×1
html ×1
inheritance ×1
java-7 ×1
matching ×1
polymorphism ×1
r ×1
regex ×1
ssh ×1
validation ×1
vpn ×1