Không những thế, bạn có thể tìm thấy mẫu thiết kế Interator sâu trong các thư việc NET, nó là một trong 2 mẫu thiết kế mà là một phần của bản thân ngôn ngữ C# và VB

Một phần của tài liệu Bài tiểu luận KIẾN TRÚC VÀ THIẾT KẾ PHẦN MỀM FACTORY PATTERN (Trang 41)

.NET, nó là một trong 2 mẫu thiết kế mà là một phần của bản thân ngôn ngữ C# và VB (mẫu thiết kế khác là Observer). Cả hai ngôn ngữ đều có một kiến trúc được xây dựng sẵn tạo điều kiện đổi các tập hợp: foreach trong C# và For Each trong VB

4. Chương trình minh họa Iterator.java

public interface Iterator { public boolean hasNext();

public Object next(); }

Container.java

public interface Container { public Iterator getIterator(); }

NameRepository.java

public class NameRepository implements Container { public String names[] = {"Robert" , "John" ,"Julie" , "Lora"}; @Override

public Iterator getIterator() { return new NameIterator(); }

private class NameIterator implements Iterator { int index;

@Override

public boolean hasNext() { if(index < names.length){ return true; } return false; } @Override

public Object next() { if(this.hasNext()){ return names[index++]; } return null; } } } IterartorPattern.java

public class IterartorPattern { /**

* @param args the command line arguments */

public static void main(String[] args) {

for(Iterator iter = namesRepository.getIterator(); iter.hasNext();){ String name = (String)iter.next();

System.out.println("Name : " + name); } // TODO code application logic here }

}

Kêt quả :

XVI. Mediatoy Pattern

1. Sơ đồ mẫu

2. Ý nghĩa 3. Ứng dụng

4. Chương trình minh họa ChatRoom.java

public class ChatRoom {

public static void showMessage(User user, String message){ System.out.println(new Date().toString()

+ " [" + user.getName() +"] : " + message); }

}

User.java

public class User { private String name; public String getName() { return name;

} (adsbygoogle = window.adsbygoogle || []).push({});

public void setName(String name) { this.name = name;

}

public User(String name){ this.name = name; }

public void sendMessage(String message){ ChatRoom.showMessage(this,message); }

}

Mediator.java

public class Mediator { /**

* @param args the command line arguments */

public static void main(String[] args) { User robert = new User("Robert"); User john = new User("John"); robert.sendMessage("Hi! John!");

john.sendMessage("Hello! Robert!"); // TODO code application logic here }

Kết quả :

XVII. Memento Pattern

1. Sơ đồ mẫu

2. Ý nghĩa

Không xâm phạm tính đóng gói, lấy được và đưa ra những trạng thái trong của một đối tượng để nó có

Một phần của tài liệu Bài tiểu luận KIẾN TRÚC VÀ THIẾT KẾ PHẦN MỀM FACTORY PATTERN (Trang 41)