提交 0d6f5d69 编写于 作者: W wizardforcel

2019-11-28 17:23:02

上级 fac8b3e3
......@@ -34,7 +34,7 @@ public class UnmodifiableSetExample {
一旦在 Java 中创建了不可变对象,就无法更改值。 不可变集也不例外。 您**不能**
* 从集合中添加或删除条目。 如果您尝试这样做,将在`java.lang.UnsupportedOperationException`中解决
* 修改 Set 元素。 尝试这样做会导致`java.lang.UnsupportedOperationException`
* 修改`Set`元素。 尝试这样做会导致`java.lang.UnsupportedOperationException`
* 将空元素添加到集合中。 如果您尝试向集合中添加一个`null`元素,则结果为`java.lang.NullPointerException`
## 在 Java 9 中创建空的不可变集
......
......@@ -12,7 +12,7 @@
## 怎么运行的
通常,会有一个`Subject.java`文件,其中包含执行所有观察者的添加,删除和更新的所有方法,或者仅初始化它们,并在不同的.java 文件中执行所有方法的功能。 按照约定,还有一个`Observer.java`文件,该文件包含一个每次主题更改时都会调用的`update()`方法。 之后,您必须创建实现`Subject`类或`Observer`类的`.java`文件。 请注意,这取决于您的类是应实现`Subject`还是`Observer`类文件。
通常,会有一个`Subject.java`文件,其中包含执行所有观察者的添加,删除和更新的所有方法,或者仅初始化它们,并在不同的`.java`文件中执行所有方法的功能。 按照约定,还有一个`Observer.java`文件,该文件包含一个每次主题更改时都会调用的`update()`方法。 之后,您必须创建实现`Subject`类或`Observer`类的`.java`文件。 请注意,这取决于您的类是应实现`Subject`还是`Observer`类文件。
![Observer design pattern](img/585385bf3232e66f9dbf2fd9e9663c1b.jpg)
......@@ -113,7 +113,7 @@ public class SubscriptionObserver implements Observer {
```
这是实际上(最终)具有更新功能的`.java`文件。 请注意我是如何在其中放入打印语句的。 这非常重要(在`update`方法中包含打印语句),因为您需要直观地显示用户所发生的事情。 在**构造函数**方法中,该参数始终是一个空列表(您将在下一个.java 文件中看到),并且`subscriptionGrabber`将是我们的新列表,其中将包含订阅者。 在第 9 行,您可以看到我们正在添加此新订户。
这是实际上(最终)具有更新功能的`.java`文件。 请注意我是如何在其中放入打印语句的。 这非常重要(在`update`方法中包含打印语句),因为您需要直观地显示用户所发生的事情。 在**构造函数**中,该参数始终是一个空列表(您将在下一个`.java`文件中看到),并且`subscriptionGrabber`将是我们的新列表,其中将包含订阅者。 在第 9 行,您可以看到我们正在添加此新订户。
`ObserverPattern.java`
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册