프로그래밍 536

디자인패턴 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){ ..

디자인패턴 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 값중 ..

Enumeration 클래스와 ListIterator 클래스

ListIterator는 Iterator를 상속받아서 기능을 추가한 것, 양방향으로 이동이 가능. ArrayList나 LinkedList와 같이 List 인터페이스를 구현한 컬렉션만 사용가능. Enumeration는 Iterator의 구버젼격. 예제 첫번째 package kch; import java.util.ArrayList; import java.util.ListIterator; public class ListIteratorEx1 { public static void main(String[] args){ ArrayList list = new ArrayList();//리스트를 선언하고 list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.a..

디자인 패턴 Memento 패턴

Memento 패턴 이름 해설 Memento Gamer의 상태를 나타내는 클래스 Gamer 게임을 싱행하는 주인공의 클래스 Memento의 인스턴스를 만든다. Main 게임을 진행시키는 클래스 Memento의 인스턴스를 저장해두고 필요에 따라서 Gamer의 상태를 복원한다. Memento 클래스 package kch; import java.util.List; import java.util.ArrayList; public class Memento{ /** * @uml.property name="money" */ int money;//소지금 /** * @uml.property name="fruits" * @uml.associationEnd multiplicity="(0 -1)" elementType="jav..

디자인패턴 Observer 패턴

이름 해설 Observer 관찰자를 나타내는 인터페이스 NumberGenerator 수를 생성하는 오브젝트를 나타내는 클래스 RandomNumberGenerator 랜덤으로 수를 생성하는 클래스 DigitObserver 숫자로 수를 표시하는 클래스 GraphObserver 간이 그래프로 수를 표시하는 클래스 Main 동작 테스트용 클래스 Observer 인터페이스 package kch; public interface Observer { public abstract void update(NumberGenerator generator); } NumberGenerator 클래스 package kch; import java.util.ArrayList; import java.util.Iterator; public..

디자인패턴 Mediator 패턴

Mediator 패턴 아래 결과화면부터 보시는 것도 이해하는데 좋습니다. 이름 해설 Mediator ‘중개인’의 인터페이스를 결정하는 인터페이스 Colleague ‘회원’의 인터페이스를 결정하는 인터페이스 ColleagueButton Colleague 인터페이스를 구현 버튼을 나타냄 ColleagueTextField Colleague 인터페이스를 구현 텍스트입력을 나타냄 ColleagueCheckbox Colleague인터페이스를 구현 체크박스(라디오버튼)을 나타냄 LoginFrame Mediator 인터페이스를 구현, 로그인 다이얼로그를 나타내는 클래스 Main 동작 테스트용의 클래스 Mediator 인터페이스 package kch; public interface Mediator {//중개인 publi..

디자인패턴 Facade 패턴

Facade 패턴 Facade 는 창구라는 뜻입니다. 버스표를 구입할때 창구에 어디갈지 말하고 돈만 내면 됩니다. 직원이 컴퓨터로 예약하고 바코드를 읽고 돈계산 작업을 하는것은 창구 밖에서는 알지 못합니다. 이런식으로 밖에서 보이는 것은 단순하게하고 안에서는 1. 컴퓨터 예약작업, 2. 바코드 읽기 3. 돈 계산을 처리하고 결과만 고객에게 보여주는 역할을 하는 패턴입니다. 패키지 이름 해설 pagemaker Database 메일 주소에서 사용자 이름을 얻는 클래스 HtmlWriter HTML 파일을 작성하는 클래스 PageMaker 메일 주소에서 사용자의 웹페이지를 작성하는 클래스 Anonymous Main 동작 테스트용 클래스 Database 클래스 package kch; import java.io.F..

반응형