소프트웨어 디자인 패턴을 사용하지 않으면 어떤 문제가 발생할 수 있습니까? 표준 객체 지향 기술을 사용하여 디자인에 접근하는 문제에 대해 알려줄 수 있습니까?
소프트웨어 디자인 패턴을 사용하지 않으면 어떤 문제가 발생할 수 있습니까? 표준 객체 지향 기술을 사용하여 디자인에 접근하는 문제에 대해 알려줄 수 있습니까?
답변:
요점이 없습니다.
디자인 패턴은 세계에 구조적 패턴이 존재하는 것처럼 소프트웨어 디자인을 수행 할 때 본질적으로 존재합니다. 사물의 이름을 모르더라도 결국 특정 물리적 구조가 특정 문제에 적합하다는 것을 알게 될 것입니다. 나무 / 금속 막대 등의 삼각형 모양은 매우 안정적인 구조이지만 평면에만 있습니다. 사각형 벽돌은 둥근 벽돌보다 장점이 있습니다 ...
마찬가지로 특정 소프트웨어 구조는 독창적이거나 최적입니다. 당신은 그 이름 을 알지 못하더라도 결국 그들을 찾아서 사용할 것입니다. 이것이 디자인 패턴의 핵심입니다. 숙련 된 프로그래머가 알고 사용하는 구조의 이름 입니다. 프로그래머에게 훨씬 더 균일하고 간결하게 의사 소통 할 수있는 기능을 제공합니다. 또한 프로그래머는 패턴의 개념을보다 의식적으로 생각할 수 있습니다.
그래서 내가하려고하는 두 가지 핵심 사항 :
과거를 기억할 수없는 사람들은 그것을 반복하도록 정죄받습니다.
디자인에서 발생 된 문제 이외의 특정 문제는 발생하지 않습니다. 그리고 시간이 지나면 인식하지 않고 패턴을 사용하게되며, 스스로 패턴을 알아내는 데 시간을 보냈습니다. 패턴을 미리 알고 있으면 디자인을 쉽게 파악할 수 있고 여러 개인에 의해 입증 된 주요 이점이 있습니다.
오늘날 개발되고있는 모든 것은 주로 이전 지식에 기반을두고 있으므로 무시하는 것은 의미가 없습니다. 수백 년 전에 성당을 지은 사람들이 직면 한 문제를 모르고 오늘 마천루를 건축한다고 상상해보십시오.
소프트웨어 디자인 패턴을 사용하지 않으면 어떤 문제가 발생할 수 있습니까?
소프트웨어를 작성할 수없는 문제가 있습니다.
변수는 디자인 패턴입니다.
방법은 디자인 패턴입니다.
더하기, 빼기 등의 연산자는 디자인 패턴입니다.
문장은 디자인 패턴입니다.
값은 디자인 패턴입니다.
참조는 디자인 패턴입니다.
식은 디자인 패턴입니다.
클래스는 디자인 패턴입니다.
...
항상 프로그래밍에서하는 모든 일은 디자인 패턴 입니다. 대부분의 경우 패턴은 생각에 너무 깊이 뿌리 내려서 "디자인 패턴"으로 생각하지 않습니다. "단일 패턴"등과 같이 배워야하는 것은 단순히 사용중인 언어로 구워지지 않은 패턴입니다.
표준 객체 지향 기술을 사용하여 디자인에 접근하는 문제에 대해 알려줄 수 있습니까?
아니요.이 질문의 의미가 무엇인지 잘 모르겠습니다. 디자인 패턴 은 "표준 객체 지향 기술" 입니다. 이것이 디자인 패턴을 만드는 이유 입니다. 디자인 패턴은 (는 아니지만 특히, 특정 문제를 해결하기위한 표준 기술이다 반드시 객체 지향 언어).
The things that you have to learn like "the singleton pattern" and so on are simply patterns that haven't (yet) been baked into whatever language you're using.
-그것은 (거의) 디자인 패턴의 정의입니다-언어 자체의 한계를 극복하기 위해 사용되는 유연하고 쉽게 재사용 가능한 코드 구조로, 다른 사람들과 쉽게 대화 할 수 있습니다. 언어의 일부가되면 더 이상 디자인 패턴이 아닙니다.
문자에 사용하는 것보다 디자인 패턴의 요점을 이해하는 것이 중요합니다. 적어도 익숙한 언어 패러다임에서 일부 패턴은 바보입니다. 디자인 패턴을 맹목적으로 사용하고 실제로 이해하지 못하는 프로그래머 인 IMO는 사물을 통해 생각하고 싶은 프로그래머보다 더 나쁜 프로그래머입니다. 그러나 아이디어에 익숙해지고 자신이 가치가 있는지 여부를 스스로 결정하는 사람은 어느 것보다 훨씬 강력한 프로그래머가 될 것입니다.
즉, 플라이급의 요점이 무엇인지! @ # $ ing 생각이 없으며 그것을 인정하는 것이 부끄러워하지 않습니다. (많은 도움이 된 다른 위키 백과 항목에 대한 주석 참조)
디자인 패턴에 대한 wikipedia의 항목을 추천합니다. 매우 간결하고 명확하게 작성되었습니다. 왜 주어진 디자인 패턴으로 귀찮게 할 수 있는지에 대한 아이디어를 얻는 데 매우 도움이됩니다. 나는 개인적으로 가장 간단한 것을 가장 유용하게 생각하며 내 요구에 맞게 패턴의 주어진 구현을 수정하는 것에 대해 두 번 생각하지 않을 것입니다.
그들은 청사진이 아니라 아이디어입니다. 일부 언어에서는 전혀 좋은 아이디어가 아닙니다. 다른 언어에서는 언어의 설계 약점을 극복하고 복잡성을 줄임으로써 더 잘 보상 할 수있는 kludges로 간주됩니다. 그럼에도 불구하고, 자신이 선호하는 솔루션을 결정하기 전에이를 검토하고 그들이 극복해야 할 과제를 이해하려고 노력하는 것이 아프지 않습니다.
어떤 종류의 문제에 직면하게됩니까? 이미 모든 것을 알아 낸 프로그래밍 천재가 아니면 기회를 놓치고 필요한 것보다 더 많은 시간을 할애 할 수 있습니다. 대중적인 프로그래밍 아이디어에 대해 비판적인 시각을 유지하는 것이 중요하지만, 사람들이 자신이 선호하는 솔루션 / 접근 방식에 대해보다 명확하게 설명하기 때문에 사람들이 해결하려는 생각을 이해하는 것은 결코 아프지 않습니다.
직면하게 될 주요 문제 는 휠을 재발 명 한다는 것입니다 . 패턴은 자주 예측 가능한 방식으로 나타나기 때문에 패턴이라고합니다.
디자인 패턴을 인식하지 않고 항상 사용하고 있습니다. 널리 사용되는 언어로 된 많은 표준 라이브러리는 디자인 패턴을 염두에두고 설계되었습니다. 예는 데코레이터 디자인 패턴을FileReader
사용하여 설계된 Java 라이브러리 입니다 . 이제 자신의 코드 에 대해 이야기 할 때 디자인 패턴을 사용하지 않아도됩니다 (대부분의 경우). 디자인 패턴은 "일반적으로 발생하는 문제에 대한 재사용 가능한 솔루션"입니다 . 즉, 유지 관리가 더 깔끔한 코드를 작성하는 데 도움이되므로 스파게티 코드로 끝나지 않으려는 정도에 달려 있습니다.