Skip to content

Commit de74f46

Browse files
committed
Update template method pattern examples
1 parent 5cb6c17 commit de74f46

File tree

10 files changed

+25
-53
lines changed

10 files changed

+25
-53
lines changed

src/BehavioralPatterns/TemplateMethod/TemplateMethodLibrary/BreadExample/Bread.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ public void Make()
1616

1717
protected abstract void Bake();
1818

19-
protected virtual void Slice()
20-
{
19+
protected virtual void Slice() =>
2120
Console.WriteLine($"Slicing the {GetType().Name}!");
22-
}
23-
}
21+
}

src/BehavioralPatterns/TemplateMethod/TemplateMethodLibrary/BreadExample/BreadExecutor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ public static void Execute()
1616
var wholeWheatBread = new WholeWheatBread();
1717
wholeWheatBread.Make();
1818
}
19-
}
19+
}

src/BehavioralPatterns/TemplateMethod/TemplateMethodLibrary/BreadExample/WhiteBread.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,9 @@
22

33
public class WhiteBread : Bread
44
{
5-
protected override void MixIngredients()
6-
{
5+
protected override void MixIngredients() =>
76
Console.WriteLine("Gathering ingredients for white bread.");
8-
}
97

10-
protected override void Bake()
11-
{
8+
protected override void Bake() =>
129
Console.WriteLine("Baking the white bread for 15 minutes.");
13-
}
14-
}
10+
}

src/BehavioralPatterns/TemplateMethod/TemplateMethodLibrary/BreadExample/WholeWheatBread.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,9 @@
22

33
public class WholeWheatBread : Bread
44
{
5-
protected override void MixIngredients()
6-
{
5+
protected override void MixIngredients() =>
76
Console.WriteLine("Gathering ingredients for whole wheat bread.");
8-
}
97

10-
protected override void Bake()
11-
{
8+
protected override void Bake() =>
129
Console.WriteLine("Baking the whole wheat bread for 20 minutes.");
13-
}
14-
}
10+
}

src/BehavioralPatterns/TemplateMethod/TemplateMethodLibrary/ConceptualExample/AbstractClass.cs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,14 @@ public void TemplateMethod()
2525
/// <summary>
2626
/// These operations already have implementations.
2727
/// </summary>
28-
protected virtual void BaseOperation1()
29-
{
28+
protected virtual void BaseOperation1() =>
3029
Console.WriteLine("AbstractClass says: I am doing the bulk of the work");
31-
}
3230

33-
protected virtual void BaseOperation2()
34-
{
31+
protected virtual void BaseOperation2() =>
3532
Console.WriteLine("AbstractClass says: But I let subclasses override some operations");
36-
}
3733

38-
protected virtual void BaseOperation3()
39-
{
34+
protected virtual void BaseOperation3() =>
4035
Console.WriteLine("AbstractClass says: But I am doing the bulk of the work anyway");
41-
}
4236

4337
/// <summary>
4438
/// These operations have to be implemented in subclasses.
@@ -59,4 +53,4 @@ protected virtual void Hook1()
5953
protected virtual void Hook2()
6054
{
6155
}
62-
}
56+
}

src/BehavioralPatterns/TemplateMethod/TemplateMethodLibrary/ConceptualExample/Client.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@ public class Client
88
/// as long as it works with objects through the interface of their base class.
99
/// </summary>
1010
/// <param name="abstractClass">Abstract class.</param>
11-
public static void ProcessSomething(AbstractClass abstractClass)
12-
{
11+
public static void ProcessSomething(AbstractClass abstractClass) =>
1312
// Initial operations
1413
abstractClass.TemplateMethod();
15-
// Additional operations
16-
}
17-
}
14+
// Additional operations
15+
}

src/BehavioralPatterns/TemplateMethod/TemplateMethodLibrary/ConceptualExample/ConceptualExecutor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ public static void Execute()
1414
Console.WriteLine("\nWorking with concrete class 2...");
1515
Client.ProcessSomething(new ConcreteClass2());
1616
}
17-
}
17+
}

src/BehavioralPatterns/TemplateMethod/TemplateMethodLibrary/ConceptualExample/ConcreteClass1.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,9 @@
66
/// </summary>
77
public class ConcreteClass1 : AbstractClass
88
{
9-
protected override void RequiredOperations1()
10-
{
9+
protected override void RequiredOperations1() =>
1110
Console.WriteLine("ConcreteClass1 says: Implemented Operation1");
12-
}
1311

14-
protected override void RequiredOperation2()
15-
{
12+
protected override void RequiredOperation2() =>
1613
Console.WriteLine("ConcreteClass1 says: Implemented Operation2");
17-
}
18-
}
14+
}

src/BehavioralPatterns/TemplateMethod/TemplateMethodLibrary/ConceptualExample/ConcreteClass2.cs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,12 @@
55
/// </summary>
66
public class ConcreteClass2 : AbstractClass
77
{
8-
protected override void RequiredOperations1()
9-
{
8+
protected override void RequiredOperations1() =>
109
Console.WriteLine("ConcreteClass2 says: Implemented Operation1");
11-
}
1210

13-
protected override void RequiredOperation2()
14-
{
11+
protected override void RequiredOperation2() =>
1512
Console.WriteLine("ConcreteClass2 says: Implemented Operation2");
16-
}
1713

18-
protected override void Hook1()
19-
{
14+
protected override void Hook1() =>
2015
Console.WriteLine("ConcreteClass2 says: Overridden Hook1");
21-
}
22-
}
16+
}

src/BehavioralPatterns/TemplateMethod/TemplateMethodLibrary/Executor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ public override void Execute()
1313
BreadExecutor.Execute();
1414
ConceptualExecutor.Execute();
1515
}
16-
}
16+
}

0 commit comments

Comments
 (0)