Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1300f65

Browse files
formatting chnage
1 parent fefa85e commit 1300f65

File tree

1 file changed

+80
-80
lines changed

1 file changed

+80
-80
lines changed

‎ObserverPattern/Program.cs

Lines changed: 80 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -3,119 +3,119 @@
33

44
namespace ObserverPattern
55
{
6-
class JobPost
7-
{
8-
public string Title { get; private set; }
9-
10-
public JobPost(string title)
6+
class JobPost
117
{
12-
Title = title;
13-
}
14-
}
15-
class JobSeeker : IObserver<JobPost>
16-
{
17-
public string Name { get; private set; }
8+
public string Title { get; private set; }
189

19-
public JobSeeker(string name)
20-
{
21-
Name = name;
10+
public JobPost(string title)
11+
{
12+
Title = title;
13+
}
2214
}
23-
24-
//Method is not being called by JobPostings class currently
25-
public void OnCompleted()
15+
class JobSeeker : IObserver<JobPost>
2616
{
27-
//No Implementation
28-
}
17+
public string Name { get; private set; }
2918

30-
//Method is not being called by JobPostings class currently
31-
public void OnError(Exception error)
32-
{
33-
//No Implementation
34-
}
35-
36-
public void OnNext(JobPost value)
37-
{
38-
Console.WriteLine("Hi {0} ! New job posted: {1}", Name, value.Title);
39-
}
40-
}
19+
public JobSeeker(string name)
20+
{
21+
Name = name;
22+
}
4123

42-
class JobPostings : IObservable<JobPost>
43-
{
44-
private List<IObserver<JobPost>> mObservers;
45-
private List<JobPost> mJobPostings;
24+
//Method is not being called by JobPostings class currently
25+
public void OnCompleted()
26+
{
27+
//No Implementation
28+
}
4629

47-
publicJobPostings()
48-
{
49-
mObservers=newList<IObserver<JobPost>>();
50-
mJobPostings=newList<JobPost>();
51-
}
30+
//Method is not being called by JobPostings class currently
31+
publicvoidOnError(Exceptionerror)
32+
{
33+
//No Implementation
34+
}
5235

53-
public IDisposable Subscribe(IObserver<JobPost> observer)
54-
{
55-
// Check whether observer is already registered. If not, add it
56-
if (!mObservers.Contains(observer))
36+
public void OnNext(JobPost value)
5737
{
58-
mObservers.Add(observer);
38+
Console.WriteLine("Hi {0} ! New job posted: {1}",Name,value.Title);
5939
}
60-
return new Unsubscriber<JobPost>(mObservers, observer);
6140
}
6241

63-
privatevoidNotify(JobPostjobPost)
42+
classJobPostings:IObservable<JobPost>
6443
{
65-
foreach(var observer in mObservers)
44+
private List<IObserver<JobPost>> mObservers;
45+
private List<JobPost> mJobPostings;
46+
47+
public JobPostings()
6648
{
67-
observer.OnNext(jobPost);
49+
mObservers = new List<IObserver<JobPost>>();
50+
mJobPostings = new List<JobPost>();
6851
}
69-
}
7052

71-
public void AddJob(JobPost jobPost)
72-
{
73-
mJobPostings.Add(jobPost);
74-
Notify(jobPost);
75-
}
53+
public IDisposable Subscribe(IObserver<JobPost> observer)
54+
{
55+
// Check whether observer is already registered. If not, add it
56+
if (!mObservers.Contains(observer))
57+
{
58+
mObservers.Add(observer);
59+
}
60+
return new Unsubscriber<JobPost>(mObservers, observer);
61+
}
7662

77-
}
63+
private void Notify(JobPost jobPost)
64+
{
65+
foreach (var observer in mObservers)
66+
{
67+
observer.OnNext(jobPost);
68+
}
69+
}
7870

79-
internal class Unsubscriber<JobPost> : IDisposable
80-
{
81-
private List<IObserver<JobPost>> mObservers;
82-
private IObserver<JobPost> mObserver;
71+
public void AddJob(JobPost jobPost)
72+
{
73+
mJobPostings.Add(jobPost);
74+
Notify(jobPost);
75+
}
8376

84-
internal Unsubscriber(List<IObserver<JobPost>> observers, IObserver<JobPost> observer)
85-
{
86-
this.mObservers = observers;
87-
this.mObserver = observer;
8877
}
8978

90-
publicvoidDispose()
79+
internalclassUnsubscriber<JobPost>:IDisposable
9180
{
92-
if (mObservers.Contains(mObserver))
93-
mObservers.Remove(mObserver);
81+
private List<IObserver<JobPost>> mObservers;
82+
private IObserver<JobPost> mObserver;
83+
84+
internal Unsubscriber(List<IObserver<JobPost>> observers, IObserver<JobPost> observer)
85+
{
86+
this.mObservers = observers;
87+
this.mObserver = observer;
88+
}
89+
90+
public void Dispose()
91+
{
92+
if (mObservers.Contains(mObserver))
93+
mObservers.Remove(mObserver);
94+
}
9495
}
95-
}
9696

9797

9898
class Program
9999
{
100100
static void Main(string[] args)
101101
{
102-
//Create Subscribers
103-
var johnDoe = new JobSeeker("John Doe");
104-
var janeDoe = new JobSeeker("Jane Doe");
102+
//Create Subscribers
103+
var johnDoe = new JobSeeker("John Doe");
104+
var janeDoe = new JobSeeker("Jane Doe");
105105

106-
//Create publisher and attch subscribers
107-
var jobPostings = new JobPostings();
108-
jobPostings.Subscribe(johnDoe);
109-
jobPostings.Subscribe(janeDoe);
106+
//Create publisher and attch subscribers
107+
var jobPostings = new JobPostings();
108+
jobPostings.Subscribe(johnDoe);
109+
jobPostings.Subscribe(janeDoe);
110110

111-
//Add a new job and see if subscribers get notified
112-
jobPostings.AddJob(new JobPost("Software Engineer"));
111+
//Add a new job and see if subscribers get notified
112+
jobPostings.AddJob(new JobPost("Software Engineer"));
113113

114-
//Output
115-
// Hi John Doe! New job posted: Software Engineer
116-
// Hi Jane Doe! New job posted: Software Engineer
114+
//Output
115+
// Hi John Doe! New job posted: Software Engineer
116+
// Hi Jane Doe! New job posted: Software Engineer
117117

118-
Console.ReadLine();
118+
Console.ReadLine();
119119
}
120120
}
121121
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /