본문 바로가기

반응형

Java

(5)
전략패턴 헤드 퍼스트 디자인 패턴(개정판)을 공부하며 정리하는 내용입니다. 전략패턴 디자인 원칙 중 첫번째 원칙은 "애플리케이션에서 변하는 부분을 찾고 변하지 않는 부분과 분리한다." 이다. 변하는 부분을 찾아서 나머지 코드에 영향을 주지 않도록 캡슐화 하면 프로그램을 수정하거나 기능이 변경 될때도 기존의 코드를 건들이지 않고 변화에 유연하게 대처할 수 있다. 객체 내부에서 인터페이스를 이용하여 틀을 만들고, 구현체에게 실제 동작하는 방식을 입력받아 유연하게 동작하도록 하는 방식을 전략 패턴이라고 한다. public abstract class Duck { FlyBehavior flyBehavior; Quackavior quackBehavior; public void fly(){ flyBehavior.fly(); ..
[이펙티브자바] 1. 생성자 대신 정적팩터리 메서드를 고려하라 객체의 생성과 파괴 객체를 만들어야 할 때와 만들지 말아야 할 때를 구분하는법 올바른 객체생성방법과 불필요한 생성을 피하는 방법 제때 파괴됨을 보장하고 파괴 전에 수행해야할 정리 작업을 관리하는 요령을 알아본다. public class Test { public static Test getTestInstance(){ return new Test(); } } 정적 팩터리 메서드를 이용하여 Test클래스의 인스턴스를 가져올 수 있다. 일반적으로 클래스를 인스턴스화 할때 사용하는 생성자(new Test)를 사용하지 않고 정적 팩터리 메서드를 이용하면서 발생하는 장점과 단점을 알아보자. 장점 이름을 가질 수 있다. public class Person { public Person(String name, int ag..
[Java] static 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 class Foo{ public static String classVar = "I class var"; public String instanceVar = "I instance var"; public static void classMethod(){ System.out.println(classVar); //OK // System.out.println(instanceVar); //ERROR } public void instanceMethod(){ System.out.println(classVar); //OK System.ou..
[Java] 버퍼 입출력(Buffer I/O) 버퍼 입출력의 필요성 입출력 스트림은 운영체제에 API를 호출하여 입출력 장치와 프로그램 사이에서 데이터가 전송 되도록 한다. 운영체제 API가 자주 호출될수록 시스템의 효율이 나빠진다.(하드, 네트워크장치 등이 자주 작동하기 때문) 버퍼를 이용해서 운영체제 API를 호출하는 주기를 줄일 수 있다. ex) BufferedReader br; br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")); 버퍼 스트림은 버퍼를 가지고 있기 때문에 버퍼가 꽉 차지 않으면 출력하지 않기 때문에 br.flush() 메소드를 이용하여 버퍼에 있는 데이터를 강제로 출력장치로 보낼 수 있다. 버퍼도 스트림과 마찬가지로 사용을 마치면 close..
[Java] 스트립입출력(Stream I/O) 스트림이란 ? 연속적인 데이터의 흐름 또는 데이터를 전송하는 소프트웨어 모듈을 일컫는다. 컴퓨터에서 스트림은 도착한 순서대로 데이터를 흘러 보낸다. 입출력 스트림 이란? 자바에서 입출력 스트림은 응용프로그램과 입출력 장치를 연결하는 소프트웨어 모듈이다. 자바 응용프로그램은 입출력 장치를 직접 제어하지 않고 입출력 스트림객체와 연결하여 데이터 입출력을 실시한다. 입력장치------------->입력 스트림-----------------> 자바 응용 프로그램 출력장치

반응형