Single Responsibility Principle (SRP)says that "THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE.". Although this article mentions only about class, I think the SRP also applies to methods within the class: there should never be more than one reason for a method to change.
Visual Studio provides a good way to mark off section of file in the form of "region"so they can be collapsible and the code can be organized. Many people use region in a big method to organize the code. For example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| public void CreeateOrder( /*some parameters*/ ) { #region Validate the parameters //code goes here #endregion #region create the order //insert the order data in the database #endregion #region create the order item //insert the item data in the database #endregion } |
Note that not all people use regions like this. Many people use comments instead of regions in this kind of methods.
As you can see this is a clear violation of the single responsibility principle. The method does more than one thing: it validates the order data, create a top level order and create order items. This can certainly be put into separate method.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| private bool ValidateOrderData( /*some parameters*/ ) { #region Validate the parameters //code goes here #endregion } private bool InsertOrder( /*order related parameter*/ ) { #region create the order //insert the order data in the database #endregion } private bool InsertOrderItem( /*order item related parameter*/ ) { #region create the order item //insert the item data in the database #endregion } public void CreateOrder( /*Some parameter*/ ) { If(ValidateOrder( /*parameter list*/ )) { if (InsertOrder( /*order parameter*/ )) { InsertOrderItem( /*order item parameter*/ ); } } } |
As you can see, wherever you are using "region" in your method to demarcate the code, you can very well put that code in a separate method.
No comments:
Post a Comment