Burapha University, 2001 Object-Oriented Analysis and Design Design Patterns Iterator Week #11 Jarungjit Parnjai.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

C# เบื้องต้น ก่อนการเขียนเกมด้วย XNA
Component องค์ประกอบของ GUI.
Swing Component Basic Component.
Introduction to Java Graphic 2D
คืออะไร? คือ queue ที่ access element ตามความสำคัญของตัว element นั้น
File.
LAB # 4.
ครั้งที่ 7 Composition.
Selected Topics in IT (Java)
LOGO Array. ประเภทของ Array - อาเรย์ 1 มิติ (One) - อาเรย์ 2 มิติ (Two) - อาเรย์ 3 มิติ (Three) 2.
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (3) (Class & Object)
คลาสและวัตถุ (2) (Class & Object)
1 String bookList[] = {" Doraemon ", " A-Ra-Re ", " DragonBall ", " BirdLand ", " Pung-Pong "}; JList scrollingList = new JList(bookList); scrollingList.setVisibleRowCount(4);
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
ทบทวนเรื่อง GUI - กลุ่มคำสั่ง AWT Set (Abstract Windowing Toolkit) และ
บทที่ 4 Method (1).
File I/O (1) โปรแกรมจะอ่านหรือเขียนข้อมูลผ่านท่อส่งข้อมูล (Stream)
ความหมายของ GUI Graphic User Interface (GUI) คือ ส่วนของการติดต่อกับผู้ใช้ด้วยรูปภาพ ที่มีสร้างขึ้นโดยใช้โปรแกรม อยู่ในชุดแพคเกจ java.awt และ javax.swing.
Dynamic Link Library (DLL)
C# Programming Exceed Camp: Day 3.
การสร้างส่วนติดต่อกับผู้ใช้ (5) การสร้างเมนู
String Class มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
อาร์เรย์ หรือแถวลำดับ (Array)
input from keyboard มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
แอพเพล็ตเบื้องต้น (Applet)
Algorithm มหาวิทยาลัยเนชั่น Java Pre-Test 49 (Series 1, 2 )
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 มิถุนายน 2550 Method of Class มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 7 มิถุนายน 2556 Text File Processing มหาวิทยาลัยเนชั่น.
JAVA PROGRAMMING PART IV.
การติดต่อกับฐานข้อมูล(MySQL)
ครั้งที่ 3.
คำสั่งควบคุมการ ทำงาน การเขียนโปรแกรมโดยปกติ มีทั้งให้ทำงาน เป็นลำดับ ที่ละคำสั่ง บางครั้งมีการให้เปลี่ยน ลำดับในการทำคำสั่ง เพื่อให้การเขียน โปรแกรมมีประสิทธิภาพสูงสุด.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved JTextArea Constructors 
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Swing GUI Components.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Java Programming Language สาขาวิชาระบบสารสนเทศ คณะบริหารธุรกิจ มหาวิทยาลัยเทคโนโลยีราชมงคลกรุงเทพ.
Thread
Thread Thread ส่วนของ process ที่ให้ CPU ประมวลผล.
The ServerSocket Class ใช้ในการจัดทำเครื่องที่เป็นการบริการ ใช้ในการจัดทำเครื่องที่เป็นการบริการ โดยจะมี ช่วงชีวิตดังนี้ โดยจะมี ช่วงชีวิตดังนี้
Nattapong Songneam BankAccount – Example Nattapong Songneam
เรื่อง jOptionPane Nattapong Songneam
การจัดวางคอมโพเนนต์กราฟิก
21 August ดรุณี ศมาวรรตกุล 1 2. ADT List - Unsorted list ADT - list implementation - Sorted List - Circular list - Doubly linked list.
Object-Oriented Programming wiht Java Burapha University, 2001 Graphical User Interface in Java Java AWT Events Event Delegation Model AWT Event Handling.
Advanced Class Design in Java Java Packages Week #6 Jarungjit Parnjai
Java Array and String Jarungjit Parnjai
Object-Oriented Programming with Java Burapha University, 2001 Java Array and String Week #3 Jarungjit Parnjai.
Object-Oriented Programming with Java Burapha University, 2001 Java Exceptions Week #9 Jarungjit Parnjai.
Lecture 7 Java Exceptions. Errors  Compile-time Errors  เกิดขึ้นระหว่าง compile ตรวจสอบได้ด้วย Compiler  เช่น ผิดหลักไวยากรณ์  Run-time Error  เกิดขึ้นระหว่างประมวลผล.
Graphical User Interface (GUI)
บทที่ 3 Class and Object (2).
บทที่ 2 การแสดงผลและรับข้อมูล
บทที่ 4 คำสั่งควบคุมแบบมีทางเลือก
บทที่ 5 คำสั่งควบคุม แบบวนซ้ำ รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 5.
Java collection framework
การจัดวางคอมโพเนนต์กราฟิก
TECH30201 Object-Oriented Programming
รู้จักและใช้งาน Applet
Inheritance และ Encapsulation.  การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่ มีอยู่แล้ว  คลาสใหม่จะนำแอตทริบิวต์และเมธอดของ คลาสเดิมมาใช้  เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก.
เครื่องมือที่ใช้ JUnit4.8.1 on Eclipse SDK3.5.2 ขึ้นไป
การจัดการกับความผิดปกติ
Variable, Data type, Expression, Operators Data input, Data output
Powerpoint Templates Page 1 Powerpoint Templates Selection Structure โครงสร้างการทำงานแบบทางเลือก.
การทำซ้ำ Pisit Nakjai.
การเขียนโปรแกรมบนมาตรฐานเปิด โครงสร้างโปรแกรม public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World”);
Inheritance and Method Overriding
File.
ใบสำเนางานนำเสนอ:

Burapha University, 2001 Object-Oriented Analysis and Design Design Patterns Iterator Week #11 Jarungjit Parnjai

Burapha University, 2001 Object-Oriented Analysis and Design The Iterator Pattern Intent เข้าถึง element ของ collection ( วัตถุที่เป็น Aggregate) สามารถเข้าถึงได้โดยไม่ต้อง เปิดเผย implementation ภายใน Motivation ListIteratorList Count ( ) Append(Element) Remove(Element) index list

Burapha University, 2001 Object-Oriented Analysis and Design The Iterator Pattern Motivation Client Iterator List First( ) Next( ) IsDone( ) CurrentItem( ) AbstractList CreateIterator( ) Count( ) Append(Element) Remove(Element) … ListIterator

Burapha University, 2001 Object-Oriented Analysis and Design The Iterator Pattern Structure Iterator First( ) Next( ) isDone( ) getCurrent( ) ConcreteCreator First( ) Next( ) isDone( ) getCurrent( ) ConcreteProduct Aggregate Client CreateIterator( ) Count( ) Append(Element) Remove(Element) …

Burapha University, 2001 Object-Oriented Analysis and Design The Iterator Pattern Participants Iterator กำหนด interface สำหรับ access หรือเข้าถึง ทุก element Concrete Iterator implement ส่วน interface ของ Iterator และใช้ ในการ keep track ของ ตำแหน่งล่าสุดที่ใช้ ในการเข้าถึงแต่ละ element ของวัตถุที่เป็น Aggregate Aggregate กำหนด interface สำหรับสร้าง Iterator Object Concrete Aggregate implement ส่วนของ Interface ที่ใช้ในการ สร้าง Iterator และคืนค่า (return) instance ของ ConcreteIterator

Burapha University, 2001 Object-Oriented Analysis and Design The Iterator Pattern Collaborations Concrete Iterator ทำการ keep track ของวัตถุ และทำการประมวลผล หาค่าวัตถุถัดไป ที่จะเข้าถึงได้

Burapha University, 2001 Object-Oriented Analysis and Design Iterator Demo Application

Burapha University, 2001 Object-Oriented Analysis and Design Structrue Enumeration hasMoreElements( ) nextElement( ) SentenceIterator hasMoreElements( ) nextElement( ) Paragraph getSentenceIterator( ) Client

Burapha University, 2001 Object-Oriented Analysis and Design Paragraph and Sentence import java.util.Enumeration; public class Paragraph { private String theText; public Paragraph(String text) { theText = text; } public Enumeration getSentence() { return new SentenceIterator(theText); } } public class Sentence { private String theText; public Sentence(String text) { theText = text; } public String toString() { return theText; } }

Burapha University, 2001 Object-Oriented Analysis and Design SentenceIterator import java.util.*; public class SentenceIterator implements Enumeration { private String theText; private int theCursor; private int nextSentencePos; public SentenceIterator(String text) { theText = text; theCursor = 0; nextSentencePos = findEnd(); } private int findEnd() { int posNL, posSP; posSP = theText.indexOf(". ", theCursor); posNL = theText.indexOf(".\n", theCursor); if (posNL > 0 && posSP > 0) return (posNL > posSP ? posSP : posNL); if (posNL > 0) return posNL; if (posSP > 0) return posSP; return -1; }

Burapha University, 2001 Object-Oriented Analysis and Design public boolean hasMoreElements() { return (nextSentencePos > 0); } public Object nextElement() throws NoSuchElementException { if ( ! hasMoreElements() ) throw new NoSuchElementException(); nextSentencePos++; String next = theText.substring(theCursor, nextSentencePos); theCursor = nextSentencePos; nextSentencePos = findEnd(); int i=0; char ch; while ((ch=next.charAt(i)) == ' ' || ch == '\n' || ch == '\t') i++; return new Sentence(next.substring(i)); } public String toString() { return theText; }

Burapha University, 2001 Object-Oriented Analysis and DesignIteratorTest import java.awt.*; import java.util.*; import java.awt.event.*; public class IteratorTest extends Frame implements ActionListener { Button iterate = new Button("Find Sentences"); TextArea input = new TextArea(15,30); TextArea output = new TextArea(15,30); Label report = new Label("", Label.CENTER); public IteratorTest() { super("Iterator Test"); setLayout(new BorderLayout()); setBackground(Color.lightGray); Panel p = new Panel();p.add(iterate); p.setFont(new Font("TimesRoman", Font.PLAIN, 12)); add(p,BorderLayout.NORTH); add(report, BorderLayout.SOUTH); p = new Panel(); p.setLayout(new GridLayout(1,2,5,5)); p.setFont(new Font("TimesRoman", Font.PLAIN, 12)); p.add(input);p.add(output); add(p, BorderLayout.CENTER);

Burapha University, 2001 Object-Oriented Analysis and Design addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { setVisible(false); dispose(); System.exit(0); } ); iterate.addActionListener(this); pack(); show(); } public void actionPerformed(ActionEvent ae) { Paragraph p = new Paragraph(input.getText()); Enumeration e = p.getSentence(); output.setText("");int nSentence = 0; while (e.hasMoreElements()) { Sentence s = (Sentence) e.nextElement(); nSentence++; output.append("\n"+nSentence+": "+s); } report.setText("Sentences read ="+nSentence); } public static void main(String[] args) { new IteratorTest(); }

Burapha University, 2001 Object-Oriented Analysis and Design The Iterator Pattern Consequences สนับสนุนรูปแบบที่หลากหลายของการ เข้าถึงวัตถุที่เป็น Aggregate Iterator ช่วยให้ interface ของ Aggregate ทำได้ ง่ายขึ้น สามารถมีการเข้าถึงวัตถุที่เป็น Aggregate ได้ มากกว่า 1 การเข้าถึง

Burapha University, 2001 Object-Oriented Analysis and Design Summary Iterator Pattern