본문 바로가기

프로그래밍 언어/JAVA(자바) 응용73

68.데코레이터 패턴을 활용한 커피 머신 프로그램 Decorator Pattern - 자바의 입출력 스트림은 decorator pattern 임 - 여러 decorator들을 활용하여 다양한 기능을 제공 - 상속보다 유연한 구현방식 - 데코레이터는 다른 데코레이터나 또는 컴포넌트를 포함해야 함 - 지속적인 기능의 추가와 제거가 용이함 - decorator와 component는 동일한 것이 아님 ( 기반 스트림 클래스가 직접 읽고 쓸 수 있음, 보조 스트림은 추가적인 기능 제공) 커피를 만들어보자 - Decorator Pattern을 활용하여 커피를 만들어 봅시다. 아메리카노 카페 라떼 = 아메리카노 + 우유 모카 커피 = 아메리카노 + 우유 + 모카시럽 크림 올라간 모카커피 = 아메리카노 + 우유 + 모카시럽 + whipping cream 커피는 컴포넌.. 2022. 6. 7.
67.여러가지 입출력 클래스들 File클래스 - 파일 개념을 추상화한 클래스 - 입출력 기능은 없고, 파일의 이름, 경로, 읽기 전용등의 속성을 알 수 있음 - 이를 지원하는 여러 메서드들이 제공됨 - FileTest.java public class FileTest { public static void main(String[] args) throws IOException{ File file = new File("D:\\FAST_JAVA\\Chapter2\\newFile.txt"); file.createNewFile(); System.out.println(file.isFile()); System.out.println(file.isDirectory()); System.out.println(file.getName()); System.out.. 2022. 6. 6.
66.직력화(serialization) serialization이란? - 인스턴스의 상태를 그대로 파일 저장하거나 네트워크로 전송하고(serialization) 이를 다시 복원(deserialization)하는 방식 - 자바에서는 보조 스트림을 활용하여 직렬화를 제공함 - ObjectInputStream과 ObjectOutputStream 생성자 설명 ObjectInputStream(InputStream In) InputStream을 생성자의 매개 변수로 받아 ObjectInputStream을 생성합니다. ObjectOutputStream(OutputStream out) OutputStream을 생성자의 매개변수로 받아 ObjectOutputStream을 생성합니다. Serializable 인터페이스 - 직렬화는 인스턴스의 내용이 외부로 유출.. 2022. 6. 6.
65.여러가지 보조 스트림 클래스들 보조 스트림 - 실제 읽고 쓰는 스트림이 아닌 보조 기능을 제공하는 스트림 - FilterInputStream과 FilterOutputStream이 보조 스트림의 상위 클래스들 - 생성자의 매개변수로 또 다른 스트림(기반 스트림이나 다른 보조 스트림)을 가짐 - Decorator Pattern으로 구현 됨 - 상위 클래스 생성자 생성자 설명 protected FilterInputStream과(InputStream in) 생성자의 매개변수로 InputStream을 받습니다. public FilterOutputStream(OutputStream out) 생성자의 매개변수로 OutputStream을 받습니다. InputStreamReader 와 OutputStreamWriter - 바이트 단위로 읽거나 쓰는 .. 2022. 6. 6.