전체 글 1309

디자인패턴 Chain of Responsibility 패턴

책임의 사슬 패턴 핸드폰이 고장나면 일단 구매처에 물어보고 구매처는 as센터로 가라고 하고 as센터에서는 이건 못고친다고 하면서 용산 전문 수리점으로 가라고 한다. 이렇게 책임 떠넘기기를 디자인패턴으로 표현했다. Trouble 클래스 package kch; public class Trouble { //발생한 트러블을 표현하는 클래스 /** * @uml.property name="number" */ private int number;//트러블 번호 public Trouble(int number){ this.number = number;//트러블의 생성 } /** * @return * @uml.property name="number" */ public int getNumber(){ return number;..

Chapter3 Preparing Design Files for Synthesis.

Organizing the Design Data. Establishing and adhering to a method of organizing data are more important than the method you choose. Partitioning for Design Reuse Design reuse decreases time to market by reducing the design, integration and testing effort. Thoroughly define and document the design interface. Standardize interfaces whenever possible. Parameterize the HDL code. Keeping Related Comb..

Chapter2. Design Compiler Basics

다음은 SoC 합성 툴인 Synopsys의 Design Compiler User 가이드의 요약입니다. Basic High-Level Design Flow Design exploration : 구체적인 디자인 목표를 위해 실제 implement Default option으로 합성 시작 ∙ Functional simulation : 원하는 기능을 수행하는지 확인 ∙ Design implementation : 실제 option을 적용시켜서 합성 시작 결과는 gate level netlist ∙ Physical design : semeconductor vendor에서 실제 칩 디자인 DC Setup Files Setup files은 DC가 실행될 때 자동적으로 읽는 파일 .synopsys_dc.setup Pos..

디자인 패턴 Visitor 패턴

Visitor 클래스 package kch; public abstract class Visitor { public abstract void visit(File file); public abstract void visit(Directory directory); } Element 인터페이스 package kch; public interface Element {//방문자를 받아들임. public abstract void accept(Visitor v); } Entry 클래스 package kch; import java.util.Iterator; public abstract class Entry implementsElement{ public abstract String getName(); public abstr..

디자인 패턴 Decorator 패턴

처음에는 아래 링크에 들어가셔서 한번 읽어보시면 이 패턴을 이해하는데 아주 도움이 될 것 입니다. http://blog.naver.com/newsdu/80115957298 Display 클래스 package kch; public abstract class Display { public abstract int getColumns();//가로 문자수를 얻는다. public abstract int getRows();//세로 행수를 얻는다. public abstract String getRowText(introw);//row번째의 문자열을 얻는다. public final void show(){//전부 표시한다. for(int i=0 ; i < getRows() ; i++){ System.out.println(g..

디자인 패턴 Composite 패턴

처음에는 아래 링크에 들어가셔서 한번 읽어보시면 이 패턴을 이해하는데 아주 도움이 될 것 입니다. http://blog.naver.com/newsdu/80115957298 Entry 클래스 package kch; /** * @author kch */ public abstract class Entry { /** *@uml.property name="name" */ public abstract String getName(); public abstract int getSize(); publicEntry add(Entry entry) throws FileTreatmentException{ throw new FileTreatmentException(); } public void printList(){ printL..

디자인 패턴 Strategy 패턴

Strategy 인터페이스 package kch; public interface Strategy { public abstract Hand nextHand(); public abstract void study(booleanwin); } WinningStrategy 클래스 package kch; import java.util.Random; public class WinningStrategy implementsStrategy{ //이 클래스는 전판이 이기면 다음에도똑같은 것을 내는 전략을 취함 privateRandom random;//랜덤변수 생성 목적 private boolean won = false;//전판이 이겼는지 졌는지에 대한 필드 private HandprevHand;//전판에 내밀었던 손을 저장함..

디자인 패턴 Bridge 패턴

Bridge 패턴 기능의 클래스 계층 1. 상위 클래스는 기본적인 기능을 가지고 있다. 2. 하위 클래스에서 새로운 기능을 추가한다. 구현의 클래스 계층 1. 상위 클래스는 추상 메소드에 의해 인터페이스를 규정한다. 2. 하위 클래스는 구상 메소드에 의해 그 인터페이스를 구현한다. 구현은 실제 메소드의 내용을 써내려가는 것이고 기능은 그 메소드를 사용해서 어떠한 것을 수행한다고 생각하면 좋습니다. Display클래스는 다리의 역활 CountDisplay는 정의된 메소드 가져다가 자기맘대로 덧붙이는 기능 개선하는 역할 DisplayImpl는 메소드의 정의만 만들어둠. StringDisplayImpl은 메소드를 구현. Display 클래스 브릿지 패턴의 핵심이 되는 부분입니다. 실제로 다리의 역활을 하는중요..

디자인 패턴 Builder 패턴

Builder 패턴 어떤 건물을 지을때 아래에서 위로 조금씩 만들어가는 것처럼 구조를 가진 인스턴스를 쌓아올리는 것을 하는 패턴입니다. 예제는 5개의 클래스가 나옵니다. Builder 문서를 구성하기 위한 메소드를 결정하는 추상 클래스 Director 한 개의 문서를 만드는 클래스 TextBuilder 일반 텍스트를 이용해서 문서를 만드는 클래스 HTMLBuilder HTML 파일을 이용해서 문서를 만드는 클래스 Main 동작 테스트용 클래스 Builder.java public abstract class Builder {//건물의 파트 벽돌 시멘트 철근 같을 것을 추상화함 //구체적으로는 아니고 이런 재료만 쓸 것이다 이런 뜻 구체적으로는 상속받은 클래스가 함 public abstract void mak..

반응형