Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
jtn-zh
提交
0d6f5d69
J
jtn-zh
项目概览
OpenDocCN
/
jtn-zh
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jtn-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
0d6f5d69
编写于
11月 28, 2019
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2019-11-28 17:23:02
上级
fac8b3e3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
3 addition
and
3 deletion
+3
-3
docs/93.md
docs/93.md
+1
-1
docs/97.md
docs/97.md
+2
-2
未找到文件。
docs/93.md
浏览文件 @
0d6f5d69
...
...
@@ -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 中创建空的不可变集
...
...
docs/97.md
浏览文件 @
0d6f5d69
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录