Skip to content

Commit b0d9956

Browse files
committed
后面的十种模式,消化起来还是比较吃力的
1 parent 791f0c6 commit b0d9956

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+678
-42
lines changed

.idea/compiler.xml

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/libraries/Maven__mysql_mysql_connector_java_5_1_21.xml

Lines changed: 0 additions & 13 deletions
This file was deleted.

.idea/libraries/Maven__org_apache_commons_commons_lang3_3_7.xml

Lines changed: 0 additions & 13 deletions
This file was deleted.

DisignPattern.iml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
3-
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
3+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6">
44
<output url="file://$MODULE_DIR$/target/classes" />
55
<output-test url="file://$MODULE_DIR$/target/test-classes" />
66
<content url="file://$MODULE_DIR$">
@@ -11,7 +11,5 @@
1111
</content>
1212
<orderEntry type="inheritedJdk" />
1313
<orderEntry type="sourceFolder" forTests="false" />
14-
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.21" level="project" />
15-
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.7" level="project" />
1614
</component>
1715
</module>

pom.xml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@
88
<artifactId>DisignPattern</artifactId>
99
<version>1.0-SNAPSHOT</version>
1010

11-
<dependencies>
12-
<dependency>
13-
<groupId>mysql</groupId>
14-
<artifactId>mysql-connector-java</artifactId>
15-
<version>5.1.21</version>
16-
</dependency>
17-
<dependency>
18-
<groupId>org.apache.commons</groupId>
19-
<artifactId>commons-lang3</artifactId>
20-
<version>3.7</version>
21-
</dependency>
22-
</dependencies>
11+
<build>
12+
<plugins>
13+
<plugin>
14+
<groupId>org.apache.maven.plugins</groupId>
15+
<artifactId>maven-compiler-plugin</artifactId>
16+
<configuration>
17+
<source>1.6</source>
18+
<target>1.6</target>
19+
</configuration>
20+
</plugin>
21+
</plugins>
22+
</build>
2323
</project>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
观察者模式(Observer)
2+
包括这个模式在内的接下来的四个模式,都是类和类之间的关系,不涉及到继承,学的时候应该 记得
3+
归纳,记得本文最开始的那个图。观察者模式很好理解,类似于邮件订阅和 RSS 订阅,当我们浏览一
4+
些博客或 wiki 时,经常会看到 RSS 图标,就这的意思是,当你订阅了该文章,如果后续有更新,会及
5+
时通知你。其实,简单来讲就一句话:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且
6+
随着变化!对象之间是一种一对多的关系。
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.gl.disign.pattern15.observer;
2+
3+
import java.util.Enumeration;
4+
import java.util.Vector;
5+
6+
public abstract class AbstractSubject implements Subject {
7+
private Vector<Observer> vector = new Vector<Observer>();
8+
@Override
9+
public void add(Observer observer) {
10+
vector.add(observer);
11+
}
12+
13+
@Override
14+
public void del(Observer observer) {
15+
vector.remove(observer);
16+
}
17+
18+
@Override
19+
public void notifyObservers() {
20+
Enumeration<Observer> elements = vector.elements();
21+
while (elements.hasMoreElements()) {
22+
elements.nextElement().update();
23+
}
24+
}
25+
26+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.gl.disign.pattern15.observer;
2+
3+
public class MySubject extends AbstractSubject {
4+
@Override
5+
public void operation() {
6+
System.out.println("update selef!");
7+
notifyObservers();
8+
}
9+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.gl.disign.pattern15.observer;
2+
3+
public interface Observer {
4+
public void update();
5+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.gl.disign.pattern15.observer;
2+
3+
public class Observer1 implements Observer {
4+
@Override
5+
public void update() {
6+
System.out.println("observer1 has received!");
7+
}
8+
}

0 commit comments

Comments
 (0)