나는 같은 것을 할 싶습니다 :static 클래스에 state를 두는 것은 나쁜 습관입니까?
public class Foo {
// Probably really a Guid, but I'm using a string here for simplicity's sake.
string Id { get; set; }
int Data { get; set; }
public Foo (int data) {
...
}
...
}
public static class FooManager {
Dictionary<string, Foo> foos = new Dictionary<string, Foo>();
public static Foo Get (string id) {
return foos [id];
}
public static Foo Add (int data) {
Foo foo = new Foo (data);
foos.Add (foo.Id, foo);
return foo;
}
public static bool Remove (string id) {
return foos.Remove (id);
}
...
// Other members, perhaps events for when Foos are added or removed, etc.
}
이 날 어디에서 Foo
의의 글로벌 모음을 관리 할 수있다. 그러나 정적 클래스는 항상 상태가 없어야한다고 들었습니다. 전역 데이터를 저장하는 데이 클래스를 사용해서는 안됩니다. 글로벌 데이터는 일반적으로 눈살을 찌푸리게하는 것처럼 보입니다. 정적 클래스를 사용해서는 안되는 경우이 문제에 접근하는 올바른 방법은 무엇입니까?
참고 : 나는 similar question을 찾았지만, 주어진 답은 제 경우에는 실제로 적용되지 않습니다.
예, 우리는 더 많은 전역 변수와 유용한 정보를 사용해야합니다 ... – Lucas
문제가 발생하지 않도록해야하지만 똑똑해야합니다. 나중에 더 나은 것으로 움직이기 위해 민첩하게 행동하십시오. –