2009-10-06 4 views
1

, 해당 필드 당신이 변수 부울이 응용 프로그램에서 활동어떻게이 패턴을 안티 패턴이라고 부릅니까? 당신이 비트 필드와 테이블이 데이터베이스에서

을 부르 자, 당신은에서 필드를 얻을 NotActive

매번 호출하자 테이블, 응용 프로그램에서 변수의 의미를 전환해야합니다.

NotActive = !mytable.active; 

또 다른 예는 Enable__yes__no라는 이름의 데이터베이스에 비트 필드가 될 것입니다 및 코드에서 당신이 할

control.enabled = !mytable.Enable_yes_no 

가장 좋은 방법은 같은 이름과 같은 의미하지만, 유지하는 것 위의 패턴, 당신은 어떻게 부를까요?

+1

이것은 패턴이 아닙니다. 패턴은 다양한 상황에서 모범 사례에 대한 설명입니다. 이것은 가난한 프로그래밍, 반 패턴뿐입니다. – Lazarus

+0

태그와 제목을 반 패턴 – Fredou

+0

@Sinan으로 변경 했으므로 수정 한 내용을 롤백합니다. 동시에 내 질문을 편집했습니다. 업데이트 된 질문 만 업데이트하십시오 – Fredou

답변

12

부울 접두사가있는 부울 변수의 이름을 지정하지 않습니다.

변수 이름을 IsActive 또는 Active로 지정하고 이름을 NotActive로 지정하면 은 double negation입니다.

편집/명확한 설명 :

당신은 일이 활성화 된 경우, 당신은 이중 부정 필요를 확인해야하는 경우 :

If (!NotActive) { DoSomething() } 

긍정적 인 부울 변수 이름은 이해하기가 훨씬 쉽다을 :

If (isActive) { DoSomething() } 
+1

더블 협상? Double Negation을 의미합니까? –

+0

+1 : 나는 또한 이것을 말할 것입니다. NotXXX라는 변수를 호출하는 것은 나쁜 패턴입니다. 좋은 지적. 더 좋은 이름은 장애인입니다. –

+2

변수 이름을 IsNotNotActive로 바꾸십시오. 이제 논리는 다시 긍정적입니다. –

6

난독 화 설계?

+1

sorta-design (NDeso_DesgnPoo라고도 함) – mjv

3

기존 데이터베이스와의 하위 호환성?

+0

죄송합니다. 근심 하시겠습니까? – Lazarus

0

여기서 문제는 데이터의 특정 명명이 아니라 아키텍처에 있다고 생각합니다. 예를 들어 엔티티 프레임 워크를 사용한 경우이 테이블의 엔티티는 InActive라는 속성을 선언 할 수 있으며 활성 열을 데이터 저장소로 사용할 수 있습니다. 외부 세계에 관한 한, 번역은 앞뒤로 투명합니다.

1

"not-not-negative spaghetti confusion pattern"으로 널리 알려져 있으며 1972 년에 처음 언급되었습니다. ;-) SCNR

관련 문제