[0327] 패턴중심적사고와프로그래밍
진행
- Animation
- XOR Drawing
- Double Buffering
- ShapeVector에 저장
- Toolbar와 연동
GToolBar gToolBar;//<---- 멤버 변수로 선언
gToolBar = toolBar;//<---- 받아온 GToolBar를 저장
-> 난 이렇게 함.
ToolBar가 먼저 눌리면 내가 네모 눌려져있다 저장해주는 것이다. 정보가 왔다갔다 최소로 줄이는 것은 ?
ToolBar의 상태를 DrawingPanel에 가지는 것이다. 이것 또한 방법이다.
ToolBar의 정보가 DrawingPanel에 copy되어야 한다. 그렇게 되면 불일치가 될 수 있어 나쁠 수 있다.
총량은 같은데 힘을 줄거냐 스킬이냐 이런 것들이 있듯이 품질이라고 한다. 나중에 ios, eo010도 있다 소프트웨어 품질에 대해 50개 정도 있다. 하나를 높이면 하나가 낮아진다. 품질을 높이면 돈을 써야 한다.효율성은 별로 안 좋다. 어떤 부분을 높이면.. 나중에 조금더 고난이도 고급 프로그램이 뭐가 되면 기능의 문제가 아니고 과연 어떤 품질을 얼마만큼을 우리가 높여서 만들 것이냐 이것이 어렵다. 고객이 니즈를 얼만큼 빠르게 ..? 이게 문제.
만약 ul를 하게되면 하나가 웹, 두번째 안드로이드, quety 하이레벨 언어. 파이썬. 하이레벨 언어를 쓸 가능성이 있다. ul에서는 자바를 쓸일 x
Data와 제어는 다른 것이다. ok나 cancel은 제어의 흐름을 바꾸는 것이다. button은 대부분 데이터를 주고받는데에 쓰는 것이 아니라 제어관련 흐름을 정리하는 것이다. ok같은 것은 글자가 중요한 것이 아니다. 진행해라 이런 뜻이다.
여기서는 이 버튼은 제어의 흐름을 담당하는 버튼은 보통 하나로 되어있지 않는다. 그렇기 때문에 얘는 항상 집합적으로 보아야 한다. 버튼 자체가 기능을 수여하는 것이 아니고 버튼 하나가지고 명령어 프로그램 ok나 cancel이나 동시에 봐야한다. ok를 누르면 dialog를 저장을 해야한다. 버튼안에서는 보이지 않는다. 버튼 안에서는 내가 login을 하고 userName과 password를 치고 ok버튼을 누르면 너 ok버튼 눌렀다. 버튼은 뭇느 역할을 하냐면 자기가 누구한테 있느냐. 버튼은 자기를 제어하는 것이 아니라 자기의 상위 개념을 제어하는 것이다. ok버튼을 누르면 event는 버튼에게 가지만 실제로는 dialog에게 얘기하는 것이다. Dialog에서는 로그인이 되었으니까 확인하세요. 한다. cancel은 cancel됐으니까 버려. 이렇게 한다.
로그인 Dialog가 있으면 User Id, password 이렇게 있다 네개는 전혀 다르다. userId, password, ok, cancel버튼이 이렇게 있다. 내가 여기에다 글씨를 치고 password를 치고 ok버튼을 누르면 버튼이 눌리면 자식은 부모로 볼 수 없고 부모는 자식이 보인다. 옆방같은 것이다. 저 바깥에선 여기 안이 보인다. 여기 안에서는 바깥이 보이지 않는다. 그렇기 때문에 지금 EventHandler을 달 때 위치를 자방줘야 한다. 진짜 코드는 이벤트바깥에서 달아야 된다.
마우스가 클릭되면 activation하는 것을 ok버튼에 달아놨다. ok버튼을 딱치면 함수가 호출이 된다.
ToolBar은 네개의 버튼이 있지만 네개의 버튼에다가 각각만들어놓아도 의미가 있다. ToolBar가 DRawingPanel에게 어떤 버튼이 눌렸는지 알려주어야 한다. EventHandler를 어디에다 붙이는지. EventDriven Program에서는 이벤트 핸들러 위치가 어디에 놓는지가 중요하다. 내가 하는 업무를 다 볼 수 있는 위치에다가 다는 것이다.
버튼이 눌리면 ActionHandler이 어떤일이 했을 때 어떠한 함수가 진행되는 거싱다. DrawingPanel에 EventHandler하면 함수가 호출된다. 얘가 해야할 일은 GDrawingPanel에 알려주어야 한다.
Button이 눌렸을 때 얘네들이 다 보이는 위치에 갖다 놓자. 주로 부모한테 가져다 놓는 것이 좋다. 왜냐 GtoolBar의 부모가 Button이기 때문에. 내가 정의하는 어떤 수서에 대한 집합을 이야기하는 것이다. 이게 지금 내가 어떤 한정을 하는 것이다.
하나의 Handler를 만들어서 모든 버튼에 단다. 그렇게 되면 어떤 버튼이 눌렸는지를 모른다.