본문 바로가기

Programming

(208)
인터페이스 기반 프로그래밍 package com.example.demo.jcf; import java.util.LinkedList;import java.util.List; public class ListClientExample { private List list;public ListClientExample() {list = new LinkedList();}private List getList() {return list;}public static void main(String[] args) {ListClientExample lce = new ListClientExample();List list = lce.getList();System.out.println(list);}} ListClientExample 클래스는 List를 캡슐화하는..
토비의 봄 TV 재사용성과 다이나믹 디스패치 그리고 더블디스패치 Dependency 의존관계(dependency relationship)-Supplier의 변화가 Client에 영향을 주는 경우 Client ----------> Supplier -의존관계발생 supplier가 Client의 필드 supplier가 Client 메서드의 파라미터 supplier가 Client의 로컬변수 supplier로 메시지를 보냄 재사용가능한? 객체지형 설계/개발- Client는 재사용이 어렵다.- Client는 컴포넌트/서비스가 될 수 없다. "컴포넌트란 이를 만든 개발자의 손이 미치지 않는 곳에서도, 아무 변경없이, 필요에 따라 확장해서 사용될 수 있는 소프트웨어 덩어리다." "오브젝트 패턴은 런타임시에 바뀔 수 있는 (상속 관계보다) 더 동적인 오브젝트(의존) 관계를 다룬다."..
컴퓨터 알고리즘 컴퓨터 알고리즘- 주어진 문제를 효율적으로 풀기위한 단계별로 기술해 놓는것. 컴퓨터 알고리즘 분석1. 문제정의- 해결하고자 하는 문제는 무엇인가?- 입력과 출력의 형태로 정의될 수 있는가?- 컴퓨터가 수행할 수 있는 형태로 전환이 가능한가? 2. 알고리즘 설명- 컴퓨터가 수행해야 할 내용을 하나씩 차례대로 정의한 과정 3. 정확성증명- 과정대로 수행하면 출력되고 항상 올바른 답을 내보는가?- 잘못된 답을 내보는 경우가 없는가?- 올바른 출력을 내보내고 정상적으로 동작하는가? 4. 성능분석- 수행시간 => 수행연산의 횟수를 비교하는 방식- 사용공간 성능분석비교대상1. 산술- add, multipy2. 데이터 입출력- copy, move, save3. 제어연산- if, while
결합도 결합도- 모듈간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미 목표- 모듈 상호간 낮은 결합도 추구하여 의존하는 모듈이 적어야한다.- 오류 발생시 전파되어 다른 오류의 원인이 되는 파급 효과를 최소화해야한다. 모듈 사이의 결합은 강한 정도(가장 바람직하지 못한 경우)에서부터 약한 정도(가장 바람직한 경우)에 이르기까지 나열할 수 있다. 다음 보기 중 강한 정도에서 약한 정도 순으로 가장 적절하게 나열된 것은? 1. 내용결합도 - 공통결합도 - 제어결합도 - 스템프 결합도 - 자료결합도 소프트웨어의 모듈간의 결합도(coupling)와 모듈내 요소간의 응집도(cohesion)에 대해서 소프트웨어 설계시 가장 바람직 한 것은? 1. 응집도는 높게 결합도는 낮게 설계한다. 다음중에서 소프트웨어 설..
응집도 응집도- 모듈에 포함된 기능의 순수함을 나타내는 척도로, 모듈의 강도를 측정하는 단위-하나의 모듈 내부의 처리 요소들 간의 기능적 연관성을 측정하는 척도-모듈안의 요소들이 서로 관련되어 있는 정도 즉, 모듈이 독립적인 기능으로 정의되어 있는 정도를 말하는 것으로, 독립적인 모듈이 되기 위해서는 각 모듈의 응집도가 강해야 한다. 응집도의 목표- 가능한 높은 응집도를 추구하여 유지보수 용이성을 확보 1단계: 암합적 강도(Coincidental Cohesion)암합적 강도 모듈은 모듈 내 요소 간 특별한 관계가 인정되지 않는다.암합이란 우연히 요소가 일치한다는 의미이다.예) 모듈 내 중복된 명령의 패턴을 우현히 발견했다는 이유로 통합해서 하나의 모듈로 만든 경우다.이때는 해당 모듈의 기능을 바르게 명명해서 정..
프로그래밍의 정석 진짜 프로그래밍의 정석이라 할 정도로 내용이 좋다.프로그래머라면 반드시 필수 서적이라고 해도 무방하다.그럼 프로그램을 짤때도 한번 더 생각하게 된다. 그리고 이 책은 여러 책들의 내용들의 핵심 부분들을 가져와서 이 책 한권이면 많은 책들을 읽는 느낌이 든다^^ 프로그래밍의 정석 - 저자 우에다 이사오 류두진 옮김
실무에서 바로 통하는 자바 실무에서 바로 사용할 수 있도록 자바에 간략하게 설명해주고 있다.그리고 실무에서 사용할 법한 예제들이 있어서 필요한 시점에 사용할 수 있다^^자바에 대해 깊이는 들어가진 않지만 실무에 바로 써야할 때 찾아서 보면 된다. 실무에서 바로 통하는 자바 - 저자 다케다 하루키, 와타나베 유지, 사토 다이치, 다다 다케아키, 가미카와 노부히코 지음, 김성훈 옮김
UML과 JAVA로 배우는 객체지향 설계 및 구현 객체지향 설계에 가장 쉽게 설명한 책그리고 UML 표현 및 자바의 표현까지 설명하고 있어서 UML을 볼때 쉽게 자바코드 구현이 될 수 있다^^ UML과 JAVA로 배우는 객체지향 설계 및 구현 - 저자 김철진, 조은숙, 배동희