File tree Expand file tree Collapse file tree 10 files changed +25
-53
lines changed
src/BehavioralPatterns/TemplateMethod/TemplateMethodLibrary Expand file tree Collapse file tree 10 files changed +25
-53
lines changed Original file line number Diff line number Diff 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+ }
Original file line number Diff line number Diff line change @@ -16,4 +16,4 @@ public static void Execute()
1616 var wholeWheatBread = new WholeWheatBread ( ) ;
1717 wholeWheatBread . Make ( ) ;
1818 }
19- }
19+ }
Original file line number Diff line number Diff line change 22
33public 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+ }
Original file line number Diff line number Diff line change 22
33public 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+ }
Original file line number Diff line number Diff 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+ }
Original file line number Diff line number Diff 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+ }
Original file line number Diff line number Diff line change @@ -14,4 +14,4 @@ public static void Execute()
1414 Console . WriteLine ( "\n Working with concrete class 2..." ) ;
1515 Client . ProcessSomething ( new ConcreteClass2 ( ) ) ;
1616 }
17- }
17+ }
Original file line number Diff line number Diff line change 66/// </summary>
77public 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+ }
Original file line number Diff line number Diff line change 55/// </summary>
66public 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+ }
Original file line number Diff line number Diff line change @@ -13,4 +13,4 @@ public override void Execute()
1313 BreadExecutor . Execute ( ) ;
1414 ConceptualExecutor . Execute ( ) ;
1515 }
16- }
16+ }
You can’t perform that action at this time.
0 commit comments