小编Fuh*_*tor的帖子

OOP类是可观察和观察者

我有一个问题,我有一个类Item,它有一个Subitems 列表.当子项已被更改或删除时,我需要父项来了解它.

我当时认为观察者模式会在这里派上用场.但是,对于扩展Observerable和实现扩展和实现的Item类,它是否有意义Observer

干杯.

java oop design-patterns

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

在 Google 文档中以编程方式向前或向后(轻松)移动光标

每当我使用以下代码在文档中插入图像时,

  var cursor = DocumentApp.getActiveDocument().getCursor();
  var image = cursor.insertInlineImage(resp.getBlob());
Run Code Online (Sandbox Code Playgroud)

光标位于图像之前。似乎将光标放在插入的内容之后更有意义,就像它已被粘贴一样。

我发现Document.newPosition可以实现这一点,但使用起来似乎很复杂。

这是我收集的:

  • 获取当前光标
  • 获取它所包含的元素
  • 解析其类型(例如,段落),并根据子项的数量使用 newPosition 处理逻辑,以防光标位于段落末尾等。

我开始尝试这样做,但认为我做错了什么,因为它太复杂了。是否有一个简单的功能可以将光标向前或向后移动一定数量的元素,例如使用箭头键?


编辑:我找到了一个简单的图像插入解决方案。光标后面总是有一个图像,所以这是有效的:

  var position = doc.newPosition(cursor.getElement(), cursor.getOffset()+1);
  doc.setCursor(position);
Run Code Online (Sandbox Code Playgroud)

然而,如果任意向前移动光标,就必须考虑cursor.getOffset()+1超出的情况ContainerElement

google-docs google-apps-script

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

输入类型的模式=具有最小和最大数字的"文本"

如何编写输入类型="文本"的模式(它不能是数字,验证不能用JS),只允许我输入数字,最小值:1和最大值:5000?

    <input type="text" name="someName" id="someId" required pattern=""/>
Run Code Online (Sandbox Code Playgroud)

html regex validation

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

在 R 中跨 data.table 行查找模式

我试图在 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 包似乎面向提供按列或按行的操作,我认为这应该是可能的。然而,我完全不知道从哪里开始。任何正确方向的指示将不胜感激。

谢谢!

r data.table

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

Decorator模式链方法如何调用?

我读了一个Decorator设计模式的例子.我知道这种设计模式动态地修改了一个特定实例的行为.我在下面给出的例子也是可以理解的.我不明白的一点是,当我调用c.getCost()牛奶对象时,它返回1.5.只有SimplecoffeegetCost()回报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)

java oop polymorphism inheritance design-patterns

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

在Windows 7 + Java 7下破坏了Eclipse CVS

我正在运行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)

eclipse cvs ssh vpn java-7

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

战略模式的功能类比是什么?

免责声明:我不使用函数式语言; 只是试图理解FP的某些部分.

谷歌建议使用lambdas的第一顺序函数可以提供与策略模式相似的功能的文章.

然而,我们需要匹配数据和相应的lambda.使用OO设计,这是通过虚拟方法表(VMT)自动完成的,即类型本身带有推理执行流程所需的重要信息,使得新行为更容易添加(开放封闭原则):继承和覆盖.旧代码只是保持不变.在这方面,功能模式匹配似乎是静态的,并且不允许这种动态.

当然,可以编写一个可配置的匹配行为来根据给定的数据选择lambda,但这不是我们在开箱即用的OOP中所拥有的吗?

design-patterns functional-programming

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

用于在状态之间切换或循环的设计模式

是否存在设计模式(如访问者,策略,状态等)或其他一些设计原则,以帮助设计一个良好的解决方案来模拟实体的状态流,例如任务实体.

任务以状态启动,然后进入BeingHandled状态,然后进入WaitingForApproval,然后它可以移动到FinishedNotApproved,这实际上是回到了 带有其他信息的BeingHandled,说它是从WaitingForApproval返回的.

所以一般来说我们有一些一般的流程,然后我们可以在其中有一些内部流程.

谢谢,

ashilon

architecture design-patterns

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

是否可以在Haskell中使用if函数使用模式匹配?

我知道采用列表输入的方法可以使用模式匹配,如下所示:

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)

这有可能在哈斯克尔做吗?

haskell functional-programming matching

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

编写工厂方法最有效的方法是什么?

在大多数情况下,当我们编写工厂方法时,它是一堆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 design-patterns factory factory-pattern effective-java

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