Skip to content

Commit 6def244

Browse files
committed
Chnaging the introduction.md for fixing styling errors
1 parent ad27bb2 commit 6def244

File tree

1 file changed

+0
-57
lines changed
  • exercises/practice/bob/.approaches/method-based

1 file changed

+0
-57
lines changed

exercises/practice/bob/.approaches/method-based/content.md

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,5 @@
11
# Method-Based Approach
22

3-
<<<<<<< HEAD
4-
=======
5-
In this approach, the different conditions for Bob’s responses are separated into dedicated private methods within the `Bob` class. This method-based approach improves readability and modularity by organizing each condition check into its own method, making the main response method easier to understand and maintain.
6-
7-
The main `hey` method determines Bob’s response by delegating each condition to a helper method (`isSilent`, `isYelling`, and `isAsking`), each encapsulating specific logic.
8-
9-
## Explanation
10-
11-
This approach simplifies the main method `hey` by breaking down each response condition into helper methods:
12-
13-
1. **Trimming the Input**:
14-
The `input` is trimmed using the `String` [`trim()`][trim] method to remove any leading or trailing whitespace. This helps to accurately detect if the input is empty and should prompt a `"Fine. Be that way!"` response.
15-
16-
2. **Delegating to Helper Methods**:
17-
Each condition is evaluated using the following helper methods:
18-
19-
- **`isSilent`**: Checks if the trimmed input has no characters.
20-
- **`isYelling`**: Checks if the input is all uppercase and contains at least one alphabetic character, indicating shouting.
21-
- **`isAsking`**: Verifies if the trimmed input ends with a question mark.
22-
23-
This modular approach keeps each condition encapsulated, enhancing code clarity.
24-
25-
3. **Order of Checks**:
26-
The order of checks within `hey` is important:
27-
- Silence is evaluated first, as it requires an immediate response.
28-
- Shouted questions take precedence over individual checks for yelling and asking.
29-
- Yelling comes next, requiring its response if not combined with a question.
30-
- Asking (a non-shouted question) is checked afterward.
31-
32-
This ordering ensures that Bob’s response matches the expected behavior without redundancy.
33-
34-
## Code structure
35-
36-
>>>>>>> e67fc434c32715ee323ebc5079ef0497932738f6
373
```java
384
class Bob {
395
String hey(String input) {
@@ -69,7 +35,6 @@ class Bob {
6935
}
7036
```
7137

72-
<<<<<<< HEAD
7338
In this approach, the different conditions for Bob’s responses are separated into dedicated private methods within the `Bob` class. This method-based approach improves readability and modularity by organizing each condition check into its own method, making the main response method easier to understand and maintain.
7439

7540
## Explanation
@@ -115,26 +80,4 @@ if (isSilent(inputTrimmed))
11580
However, the [Java Coding Conventions][coding-conventions] advise always using curly braces for `if` statements, which helps to avoid errors. Your team may choose to overrule them at its own risk.
11681

11782
[trim]: https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#trim()
118-
=======
119-
## Advantages of the Method-Based Approach
120-
121-
- **Readability**: Each method is clearly responsible for a specific condition, making the main response logic easy to follow.
122-
- **Maintainability**: Changes to a condition can be confined to its method, minimizing impacts on the rest of the code.
123-
- **Code Reusability**: Helper methods can be reused or adapted easily if new conditions are added in the future.
124-
125-
## Considerations
126-
127-
- **Efficiency**: While this approach introduces multiple method calls, it enhances readability significantly, which is often more valuable in non-performance-critical applications.
128-
- **Error Prevention**: This approach avoids redundant code, reducing the risk of maintenance errors.
129-
130-
## Shortening Condition Checks
131-
132-
If each `if` statement body is only a single line, braces can be omitted, or the test expression and result could be placed on a single line. However, [Java Coding Conventions][coding-conventions] recommend always using curly braces for error prevention and easier future modifications.
133-
134-
### Alternative: Inline Helper Methods
135-
136-
For smaller projects, consider implementing helper methods inline or as lambdas, though this might reduce readability.
137-
138-
[trim]: https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#trim()
139-
>>>>>>> e67fc434c32715ee323ebc5079ef0497932738f6
14083
[coding-conventions]: https://www.oracle.com/java/technologies/javase/codeconventions-statements.html#449

0 commit comments

Comments
 (0)