이것은 내 지식 부족/나쁜 프로그래밍 실습을 보여줄 수 있지만, 궁금한 점은 다음과 같습니다. a) 이미 있습니다. b)클래스의 특정 인스턴스에 대한 정적/공유 변수
은 가정하자 나는 클래스가,의는 "컴퓨터"를 부르 자하고 회사의 모든 컴퓨터의 데이터를 보유 : 너무
을 할 나쁜 프로그래밍 연습이다 그러나 여기 내 질문의 경우는, 존재하지 않는 . 이제는이 회사에 수천 대의 Dell 컴퓨터와 수천 대의 HP 만 있고 다른 것은 없습니다.
Public Class Computer
Dim Type as string
Dim SerialNumber as string
Dim User as String
...
End Class
을 지금, 나는 두 개의 목록을 만들 내 코드 : 다음과 같이 내 클래스를 정의 할 수 있습니다, 지금
을 (다시이 나의 점을 설명하기 위해 단지 예입니다, 여기에 나와 함께 스틱하시기 바랍니다)
Dim DellComps as new list(of computer)
Dim HPComps as new list(of computer)
물론, DellComps
을 위해, 그들 모두는 .Type = "Dell"
이되고 HPComps
에 대한 모든 것 .Type = "HP"
이제 생성자에서이 변수를 매우 쉽게 설정할 수 있다는 것을 알았지 만, 클래스 내부에서 변수를 선언하는 것이 더 현명한 방법인지 궁금합니다. VB Shared/C# Static 문과 유사합니다. 클래스는 동일한 변수를 공유합니다.
내 생각은 :
- 클래스를 상속하고
- 그냥 그대로두고 자식 클래스의 공유 변수를 만들고 생성자에서 유형 VAR를 선언
- 어쩌면 뭔가입니다 어떻게 든
- 가장 가능성이 인터페이스를 통해 수행 할 수 - 난 그냥 약
타를 모르는 무언가를 nks와 나는 내가 묻고있는 것이 의미가 있기를 바란다! !!
에릭 - 답변 해 주셔서 감사합니다! 한 가지 질문 - 마스터 목록에서 ** Enumarable.OfType **을 사용하면 단일 부모 클래스를 만든 다음 생성자의 각 요소 유형을 설정해야합니다. 하위 클래스를 만들지 만 두 유형의 하위 클래스를 모두 보유하는 목록을 만들지 않습니까? 아마 YYY 멘션이나 인터페이스처럼 추상 클래스를 사용하고 있을까? - 내가 바라는 바가 의미가 있기를 바랍니다. –
@ JohnBustos : 목록을 만들면 Computer의 하위 클래스를 수용 할 수 있습니다. 새 인스턴스를 만들 때 하위 클래스 방식을 사용하는 경우 일반적으로 팩토리 패턴을 사용하여 실제 인스턴스를 만듭니다. 내 대답을 업데이트하여 팩토리 패턴이 어떻게 보이는지 보여줍니다. –