Could you please explain this statement by providing an implementation of the design pattern it alludes to? : <p>The <a href="https://msdn.microsoft.com/en-us/library/1c9txz50%28v=vs.110%29.aspx" rel="nofollow">Managed Threading Best Practices</a> page states:</p>

<p><em>Avoid providing static methods that alter static state. In common server scenarios, static state is shared across requests, which means multiple threads can execute that code at the same time. This opens up the possibility of threading bugs. <strong>Consider using a design pattern that encapsulates data into instances that are not shared across requests.</strong> Furthermore, if static data are synchronized, calls between static methods that alter state can result in deadlocks or redundant synchronization, adversely affecting performance.</em></p>

<p>I understand all the rest except for the one sentence that is in bold.</p>

<p>How would you do this without essentially changing the field from a static one to an instance one? Isn't that saying, "In a server scenario, avoid using static class-level members as much as you can?"</p>

<p>If it isn't, could you please provide an implementation of the design pattern it is alluding to?</p>
