Skip to content

Commit 8feefbe

Browse files
committed
- refactored the dir
- Observer pattern
1 parent 7b7efe8 commit 8feefbe

32 files changed

Lines changed: 286 additions & 16 deletions

pom.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>designPattern</groupId>
8+
<artifactId>DesignPatterns</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
11+
<properties>
12+
<maven.compiler.source>24</maven.compiler.source>
13+
<maven.compiler.target>24</maven.compiler.target>
14+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15+
</properties>
16+
17+
</project>

src/main/java/designPattern/Main.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package designPattern;
22

3-
import singleton.*;
3+
import designPattern.creational.singleton.*;
44

55
import java.lang.reflect.*;
66

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package designPattern.behavioural.observer;
2+
3+
public class Main {
4+
public static void main(String[] args) {
5+
YTChannel ytChannel = new YTChannel();
6+
Subscriber subscriber = new Subscriber();
7+
8+
ytChannel.register(subscriber);
9+
ytChannel.notifyObservers("Welcome to YT Channel: ");
10+
}
11+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
1. Behavioural Design pattern: Tells about how will objects interact with each other
2+
2. In this if the subject chanegs the state all the dependent objects notified the change.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package designPattern.behavioural.observer;
2+
3+
public interface Observer {
4+
void getNotified(String message);
5+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package designPattern.behavioural.observer;
2+
3+
public interface Subject {
4+
void register(Observer observer);
5+
void unregister(Observer observer);
6+
7+
void notifyObservers(String message);
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package designPattern.behavioural.observer;
2+
3+
public class Subscriber implements Observer {
4+
@Override
5+
public void getNotified(String message) {
6+
System.out.println("Notified about a change in the subject"+message);
7+
}
8+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package designPattern.behavioural.observer;
2+
3+
import java.util.*;
4+
5+
public class YTChannel implements Subject {
6+
private String name;
7+
private List<Observer> observers = new ArrayList<>();
8+
9+
@Override
10+
public void register(Observer observer) {
11+
observers.add(observer);
12+
}
13+
14+
@Override
15+
public void unregister(Observer observer) {
16+
observers.remove(observer);
17+
}
18+
19+
@Override
20+
public void notifyObservers(String message) {
21+
for(Observer observer : observers) {
22+
observer.getNotified(message);
23+
}
24+
}
25+
}

src/main/java/designPattern/abstractFactory/AbstractEmployeeFactory.java renamed to src/main/java/designPattern/creational/abstractFactory/AbstractEmployeeFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package designPattern.abstractFactory;
1+
package designPattern.creational.abstractFactory;
22

33
public abstract class AbstractEmployeeFactory {
44
public abstract IEmployee getEmployee();

src/main/java/designPattern/abstractFactory/EmployeeFactory.java renamed to src/main/java/designPattern/creational/abstractFactory/EmployeeFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package designPattern.abstractFactory;
1+
package designPattern.creational.abstractFactory;
22

33
public class EmployeeFactory {
44
public static IEmployee getEmployee(AbstractEmployeeFactory factory) {

0 commit comments

Comments
 (0)