2013-06-13 1 views
0

Windows 양식 텍스트 상자에 일부 기능을 추가하는 클래스가 있습니다. 예를 들어 텍스트 상자 키 작동 중지 이벤트를 처리하고 일종의 논리를 기반으로 'Enter'키를 누른 경우 사용자가 많은 수의 엔터티 중에서 하나의 엔터티를 선택할 수 있도록 특수 그리드가 표시됩니다. 그래서이 클래스를 'Textbox Extender'라고하고 텍스트 상자를 'Extended'라고 부릅니다.단일 책임 원칙 위반 됨 또는 없음

이제이 기능을 클래스에 추가하는 것이 매우 쉬운 백 컬러 변경으로 텍스트 상자를 확장할지 여부를 사용자에게 알리고 싶습니다. 저는 단일 책임 원칙에 위배됩니다. 어떤 아이디어든지 높게 평가된다.

답변

0

ssr과 관련이 없습니다. 학급 책임은 텍스트 박스 기능을 확장하는 것입니다.

+0

하지만 이제는 두 가지 책임이 있습니다. 텍스트 상자를 확장하고 배경색을 변경합니다. 아마도 내일 글꼴을 바꿀 것입니다. forecolor를 바꾸는 다른 날. 너의 이상은 뭐니? – Alireza

+1

하! 그런 다음 일반적인 텍스트 상자에 대해 생각해보십시오 : 프로세스 "a"단추 누르기, 인쇄 "a"char, 프로세스 "b"단추 누르기, 인쇄 "b"char 등 – athabaska

+0

당신의 경우에는 책임자가 무엇인지에 대한 더 넓은 시각. 게다가, 하루가 끝날 무렵에 "적절한 개발"의 모든 규칙을 충족시키는 응용 프로그램이 아니라 작동중인 응용 프로그램을 원하지만 작동하지는 않습니다. – athabaska

0

단일 책임 원칙에 따라 한 가지 목적 만 충만해야한다고 말하면 클래스의 목적은 무엇입니까? 확장 된 TextBox를 보여주고 (다른 곳에서는 할 수없는 데이터를 가져 오는 것입니다), UI 변경이 사용자에게 확장 텍스트 상자가 있음을 알리면 모든 내용이 정상입니다. SRP. 어쨌든 UI 객체 캡슐화 UI는 과장된 것처럼 보입니다.

+0

'어쨌든 UI 개체 캡슐화 UI는 과장된 것 같습니다.' Extender 클래스에서 캡슐화 된 것은 없습니다. – Alireza

+0

당신은 다른 클래스에 배치해야한다는 것을 의미하는 srp에 반대되는 경우 이제 UI를 변경하려고했습니다. 그리고 Textbox의 UI를 다른 클래스에서 변경하는 것은 쓸데없는 작업처럼 보입니다. – Master117