Page History
...
용어중 패턴에대한 설명이 가장 어려워서 따로 정리하였습니다.
Expand | ||
---|---|---|
|
...
| |
소프트웨어 설계에 있어서 경험만큼 확실한 것은 없다. 그러나 문제는 모든 사람들이 충분한 경험을 갖고 있지는 않다는 사실이다. 그렇다면 충분한 경험을 갖지 못한 사람들이 많은 경험을 가진 전문가 못지않게 소프트웨어 설계를 잘 할 수 있도록 만들어 줄수 있는 방법은 무엇일까? 소프트웨어 설계 방법론과 지침을 통한 공유 => 접근의 한계가 있음, 방법론이나 지침은 일반화된 것이어서 구체적인 문제에 적용하기 위해서는 또다른 지식이필요 사례를 통한 공유 => 사례는 너무 구체적이고 특정 문제의 가정에 의존 위 두가지 모두 한계점이있으며 일반적이지도, 또 너무 구체적이지도 않은 형태의 소프트웨어 설계를 위한 지침을 고민하면서 생긴게 디자인 패턴이다. ( Design Patterns : Elements of Reusable Object-Oriented Software) - 여기에 포함되는 패턴이 GoF(이분야의 4인방) 디자인 패턴이다. Erich Gamma외 3명은 다음과 같은 절차로 디자인 패턴을 정립화 하였다. ( 새로운 디자인 패턴도 아래와같은 과정으로 생겨난다.)
디자인 패턴이 휼륭한 원서임에도 불구하고 다음과 같은 약점이 있음
그 이후 위 약점을 보완하려고, 다양한 언어로 디자인 패턴 활용방법에 대한 책이 쏟아져 나왔지만 개인 개발자 는 다음과 같은 절차를 따름 ( 개인생각 )
|
OOP와 비교해본 Actor Model
OOP
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
public class DeepThought { private int state; public int State { get { lock (this) { Thread.Sleep(3000); //나의 상태에대한 깊은 생각에 빠짐..나는누군가? 여긴어딘가? return state; } } set { lock (this) { //깊은 생각에 빠질땐 누구도 건들지 말기를 바람,그대가 최고우선순위 스레드라할지라도 state = value; } } } } var dt = new DeepThought() Thread.new { console.log( dt.State ) } Thread.new { dt.State=1 } |
...