분류 전체 보기 1305

디자인패턴 Command 패턴

Command 패턴 패키지 이름 해설 command Command 명령을 표현하는 인터페이스 MacroCommand 복수의 명령을 모은 명령을 표현하는 클래스 drawer DrawCommand 점 그리기 명령을 표현하는 클래스 Drawable 그리기 대상을 표현하는 인터페이스 DrawCanvas 그리기 대상을 구현하는 클래스 Anonymous Main 동작 테스트용 클래스 Command 패턴의 핵심은 명령을 시키는 사람과 명령을 구체적인 계획을 가지고 수행하는 사람을 분리시키는 것입니다. 문서열기나 복사하기나 취소하기 는 셋다 명령입니다. 그리고 명령을 수행시키는 사람은 따로 있습니다. 한번 어떻게 분리시켰는지 소스를 보고 실행해봅시다. Command 인터페이스 package command; public..

안드로이드 Context Menu를 만들어보자.

컨텍스트 메뉴 컨텍스트 메뉴란 뷰를 롱클릭했을때 나타나는 메뉴입니다. 이번에는 아이유 사진을 등록하고 아이유 사진을 누르면 메뉴가 뜨게 해보겠습니다. 기본적으로 컨텍스트 메뉴를 달고 싶으면 void Acitivity.registerForContextMenu(View view) 메소드를 사용해야되고 기본적인 메뉴 생성은 void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) 에서 처리를 합니다. 그리고 컨텍스트 메뉴 아이템이 선택됬을 때는 boolean onContextItemSelected(MenuItem item) 에서 처리하면됩니다. 이때 오버라이딩 방법은 소스에서 오른쪽 클릭을 누르면 다음과 같이..

디자인패턴 Proxy 패턴

Proxy 패턴 이름 해설 Printer 이름있는 프린터를 나타내는 클래스(본인) Printable Printer와 PrinterProxy 공통의 인스턴스 PrinterProxy 이름있는 프린터를 나타내는 클래스(대리인) Main 동작 테스트용 클래스 Printable 인터페이스 package kch; public interface Printable { public abstract void setPrinterName(String name);//이름의 설정 public abstract String getPrinterName();//이름의 취득 public abstract void print(String string);//문자열 표시 } Printer 클래스 package kch; public class P..

안드로이드 Listener의 이해, 버튼을 누르면 Text가 바뀐다

이번에는 버튼이 눌리면 글자가 바뀌는 간단한 어플을 만들어봅시다. 이때 필요한 것은 리스너라는 것인데 리스너는 귀를 귀울이다라는 뜻으로 생각하면 됩니다. 자세한 건 소스에 있습니다. activity_main.xml MainActivity.java package com.example.fruit; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { @Ov..

디자인패턴 Flyweight 패턴

이름 해설 BigChar ‘큰문자’를 나타내는 클래스 BigCharFactory BigChar의 인스턴스를 공유하면서 생성하는 클래스 BigString BigChar를 모아서 만든 ‘큰 문자열’을 나타내는 클래스 Main 동작 테스트용 클래스 BigChar 클래스 package kch; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class BigChar { //문자의 이름 private char charname; //큰 문자를 표현하는 문자열('#' '.' '\n'의 열) private String fontdata; //생성자 public BigChar(char charname){ ..

Chapter5 Working With Desings in Memory Part2

Chapter5 Working With Desings in Memory Part2 Chapter5는 내용이 많아서 2개로 나눴습니다. linking designs set search_path "$search_path libs cons .." set link_library "* tcbn65lpvtwc.db" linking 과정 1. 현재 디자인에서 무슨 라이브러리 컴포넌트를 썼는지 결정한다. 2. link 라이브러리에서 사용된 라이브러리 컴포넌트가 있는지 찾는다, è 첫 번째로 local_link_library 명령어를 쓴 라이브러리부터 찾는다. è 두 번째로 ‘*’가 있으면 메모리에 이미 올려져있는 라이브러리부터 찾는다 è 마지막으로 link_library 명령어를 쓴 라이브러리에 찾는다. 3. 2번 과..

Chapter5 Working With Designs in Memory Part1.

5. Working With designs in memory Design Compiler chapter 5를 요약한 내용입니다. Design Terminology 1. Flat Design contain no subdesigns and have only one structural level. 2. hierarchical designs contains one or more designs as subdesigns. hierarchical design 예제 Design Objects의 종류 design 디자인은 인스턴스, 넷, 포트 핀으로 구성되있는 것을 말한다. REFERENCE 디자인의 라이브러리 컴포넌트이다. 단순한 로직 게이트부터 RAM 이나 CPU같은 복잡한 로직도 포함한다. Instance or C..

디자인패턴 State 패턴

State 패턴 이름 해설 State 금고의 상태를 나타내는 인터페이스 DayState State를 구현하고 있는 클래스, 주간의 상태를 나타낸다. NightState State를 구현하고 있는 클래스, 야간의 상태를 나타낸다. Context 금고의 상태변환를 관리하고 경비센터와 연락을 취하는 인터페이스 SafeFrame Context를 구현하는 클래스, 버튼이나 화면표시 등의 사용자인터페이스를 갖는다. Main 동작 테스트용 클래스 State 인터페이스 package kch; public interface State {//상태를 정의 public abstract void doClock(Context context, int hour);//시간 설정 public abstract void doUse(Cont..

안드로이드 Toast 메시지에 내가 원하는 그림을 넣어보자

위는 file explore입니다. mina.jpg는 그림파일인데 안드로이드에서는 png나 jpg를 쓰는 것을 추천합니다. 저는 아래 사진을 썼습니다. 토스트메시지는 화면에 잠시 나타나는 메시지인데 디버깅할 때나 잠시 사용자에게 메시지를 보여줄 때 유용합니다. static Toast makeText(Context context, int resId, int duration) static Toast makeText)Context context, CharSequence text, int duration) 첫번째인자는 액티비티를 전달하므로 액티비티.this로 넘겨주면 되고 두번째인자는 메시지인데 String타입도 가능합니다. 세번째인자는 메시지의 지속시간인데 LENGTH_SHORT나 LENGTH_LONG 값중 ..

반응형