Hello community,
I have a question after reading a book on design patterns and researching online. I'm curious about why using the singleton pattern is often discouraged. I'm dealing with a scenario where I receive a request, and within that request, there's a specific form type, for example, Form-type1-virginia. The logic that needs to be executed corresponds to that particular state and form type, specifically type1.
I'm considering setting a global instance and accessing it to determine which validations should be executed. Is this a good solution? If not, what would be a better approach, or in which cases would you recommend using this design pattern or alternatively global variables? I would appreciate hearing your opinions on this.
Thanks.
Below is a snippet of the code I'm considering:
public class FormType
{
private static FormType _instance;
private string _type;
private string _state;
private FormType(string type, string state)
{
_type = type;
_state = state;
}
public static FormType GetInstance(string type, string state)
{
if (_instance == null || (_instance._type != type || _instance._state != state))
{
_instance = new FormType(type, state);
}
return _instance;
}
public string Type => _type;
public string State => _state;
}