2011-02-23 6 views

답변

2

기술적으로 예. 그러나 정확한 위반은 이 아니며이 아닙니다 ... 단일 책임 원칙은 실제로 모든 코드 단위에 적용될 수있는 추상 원칙입니다. Steve McConnell's Code Complete 2에서 그는 실제로 이것에 대해 응집으로 말합니다. 실제로 이는 루틴에 사용되는 단일 책임 원리의보다 구체적인 형태입니다. 그에 따라 응집력

가장 바람직한 종류 루틴 하나만 동작 (그 표시 예는 등 sin(), getCustomerName(), eraseFile() 임) 수행 기능 응집력이다. 그래서, exit()는 2 가지를합니다. 따라서 시간적 결합이 표시됩니다 (작업은 동시에 완료되기 때문에 동일한 루틴에서 수행됩니다).

이제는 exit($arg)의 원래 인수가 응용 프로그램의 반환 상태였습니다 (참조 : linux exit status codes 참조). C에서 이것은 main()에서 반환 된 정수 값입니다. 그러나 PHP에는 기본 함수가 없으므로 exit() 매개 변수에 추가되었습니다. 시도해보고 exit(2)을 추가하면 프로그램의 반환 값은 상태 2가됩니다 (일반적으로 0은 성공하며 are there any standard linux exit status codes 참조).

그러나 PHP는 입력 장벽이 낮기 때문에 대부분의 개발자는 상태 코드를 알지 못할 것입니다. 그래서, 그것은 문자열을 받아 들일 수 있도록 만들어졌습니다. 인수가 문자열이면 상태 인이 STDOUT에 반향 출력되고 응용 프로그램이 종료됩니다. 정수이면 프로그램에서 반환됩니다. 그래서 그것은 인공물입니다.

이제 문제가 있습니까? 그렇지 않아. 이상적입니까? 아니요.하지만 관련이 있기 때문에 끔찍한 것도 아닙니다. 결국, 나는 그 위에 잠을 자지 않을 것이다 ...

5

아니요, exit은 절차 언어 구조이므로 모든 클래스의 멤버 함수가 아닙니다. 단일 책임 원칙은 PHP 언어의 전체 기반을 포함하지 않는 객체 지향 프로그래밍 (일부만 해당)에 적용해야합니다.

+0

정말로 19 살이신가요? –

+0

@Emanuil : 예, 있습니다. – BoltClock

+0

나는 아주 감명 받았다. –

관련 문제