Skip to content

Commit ce5559f

Browse files
committed
Remove singleton instances from compare strategies
Eliminated the static singleton Instance properties from DefaultCompareStrategy and SemVerCompareStrategy. Updated StringVersion to instantiate new strategy objects directly instead of using the singleton, improving encapsulation and reducing shared state.
1 parent 34d52fe commit ce5559f

3 files changed

Lines changed: 2 additions & 12 deletions

File tree

src/System.StringVersion/DefaultCompareStrategy.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,6 @@ namespace System.StringVersion;
55
/// </summary>
66
public class DefaultCompareStrategy : IVersionCompareStrategy
77
{
8-
/// <summary>
9-
/// Singleton instance of the default compare strategy.
10-
/// </summary>
11-
public static DefaultCompareStrategy Instance { get; } = new DefaultCompareStrategy();
12-
138
/// <summary>
149
/// Compares two arrays of version tokens using default rules.
1510
/// </summary>

src/System.StringVersion/SemVerCompareStrategy.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,6 @@ namespace System.StringVersion;
88
/// </summary>
99
public class SemVerCompareStrategy : IVersionCompareStrategy
1010
{
11-
/// <summary>
12-
/// Singleton instance of the SemVer compare strategy.
13-
/// </summary>
14-
public static SemVerCompareStrategy Instance { get; } = new SemVerCompareStrategy();
15-
1611
/// <summary>
1712
/// Compares two arrays of version tokens using SemVer rules.
1813
/// </summary>

src/System.StringVersion/StringVersion.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public StringVersion(string? original)
5757
}
5858
Tokens = tokens;
5959
Original = original ?? string.Empty;
60-
Strategy = SemVerCompareStrategy.Instance;
60+
Strategy = new SemVerCompareStrategy();
6161
}
6262

6363
/// <summary>
@@ -72,7 +72,7 @@ public StringVersion(VersionToken[] tokens, string? original, IVersionCompareStr
7272
// Null checks to guarantee no exception is thrown
7373
Tokens = tokens ?? [];
7474
Original = original ?? string.Empty;
75-
Strategy = strategy ?? SemVerCompareStrategy.Instance;
75+
Strategy = strategy ?? new SemVerCompareStrategy();
7676
}
7777

7878
/// <summary>

0 commit comments

Comments
 (0)