<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="/Skins/Default/Rss.xsl" ?>
<rss version="2.0">
<channel>
<title>Căn bản về .NET Framework : Chuyên đề Design Patterns (hàng độc chiêu)</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>&lt;UL&gt;
&lt;LI&gt;Mình biên tập chuyên đề về "&lt;EM&gt;Mẫu thiết kế&lt;/EM&gt;" này với mong muốn được chia sẽ kiến thức với mọi người. Hiện mình đang nghiên cứu 2 bộ &lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Design Patterns&lt;/FONT&gt;&lt;/STRONG&gt; của nhóm GANG OF FOUR và bộ Enterprise Library. Với hi vọng cùng nhau phát triền, mong mọi người chung tay cho chủ đề này.&lt;/LI&gt;
&lt;LI&gt;Trong tháng này mình sẽ hoàn thành bộ Design Patterns của nhóm GANG OF FOUR. Mình sẽ pop lên cho mọi người tham khảo&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
<publisher>Vietnam .NET Community</publisher>
<language>vi-VN</language>
<managingEditor>automail-noreply@dot.net.vn</managingEditor>
<webMaster>automail-noreply@dot.net.vn</webMaster>
<copyright>Copyright 2005-2008 Vietnam .NET Community</copyright>
<pubDate>Mon, 14 Jul 2008 09:14:58 GMT</pubDate>
<category>Căn bản về .NET Framework</category>
<ttl>60</ttl>
<docs>http://cyber.law.harvard.edu/rss/rss.html</docs>
<generator>VIE Portal RSS Generator - Version 5.5.3057.24265 - http://www.vieportal.vn/</generator>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>&lt;br&gt;&lt;font size="3"&gt;&lt;span style="font-weight: bold;"&gt;Nhập cuộc!&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt; - Trong công nghệ phần mềm, một mẫu thiết kế là một
giải pháp tổng thể cho các vấn đề chung trong thiết kế phần mềm. Một
mẫu thiết kế không phải là một thiết kế hoàn thiện để mà có thể được
chuyển đổi trực tiếp thành mã; nó chỉ là một mô tả hay là sườn
(template) mô tả cách giải quyết một vấn đề mà có thể được dùng trong
nhiều tình huống khác nhau. Các mẫu thiết kế hướng đối tượng thường cho
thấy mối quan hệ và sự tương tác giữa các lớp hay các đối tượng, mà
không cần chỉ rõ các lớp hay đối tượng của từng ứng dụng cụ thể. Các
giải thuật không được xem là các mẫu thiết kế, vì chúng giải quyết các
vấn đề về tính toán hơn là các vấn đề về thiết kế.&lt;br&gt;&lt;br&gt;- Đây thực sự
là 1 nghệ thuật, tiếp nhận nó về tư tưởng là chính, nó rất "khó nhai".
Chi phí làm 1 chương trình với DP là rất lớn, vì vậy DP cũng ít áp dụng
trong program bình thường. Chỉ những công ty lớn mới bỏ thời gian ra
nghiên cứu trong những program quan trọng, còn những công ty nhỏ viết
chương trình ra chạy được là ok rồi . Bù lại program viết bằng DP chỉ
cần sửa rất ít là ra chương trình mới.&lt;br&gt;&lt;br&gt;- Nhiều người rất ghét DP, cho nó là thứ bỏ đi vì họ thấy không cần DP thì vẫn viết chương trình chạy tốt.&lt;br&gt;&lt;br&gt;-
1 ví dụ về program Design Pattern: Viết 1 chương trình chơi cờ sao cho
chơi được nhiều loại cờ (cờ Vua, cờ Tướng, cờ Nhảy). Nếu bạn thiết kế
tốt thì bạn chỉ cần viết kỹ 1 loại cờ (giả sử Cờ Vua) rồi viết thêm
loại cờ mới (Cờ tướng) bạn chỉ cần định nghĩa lại: Kích thước bàn cờ,
định nghĩa các loại quân của cờ tướng là program chạy ok. Còn phương
pháp xứ lý khi chơi thì được tái sử dụng lại.&lt;br&gt;&lt;br&gt;- Design Patterns
đưa ra các giải pháp chuẩn và các qui ước đặt tên cho các vấn đề chung
trong thiết kế phần mềm. Các tác giả của cuốn sách GANG OF FOUR là
Erich Gamma, Richard Helm, Ralph Johnson và John Vlissides, hay còn
được biết đến với các tên "Gang of Four" hay đơn giản là&lt;br&gt;</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Sat, 08 Sep 2007 11:13:33 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>&lt;font size="3"&gt;&lt;span style="font-weight: bold;"&gt;Các mẫu thiết kế trong catalog&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;- Catalog của chúng ta bao gồm 23 mẫu thiết kế. Dưới đây, chúng được liệt kê theo tên gọi và mục đích để giúp bạn có được cái nhìn sơ bộ về từng mẫu.&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Abstract Factory&lt;/span&gt;. Cung cấp giao diện để khách hàng có thể tạo ra những nhóm đối tượng có liên quan hoặc phụ thuộc lẫn nhau mà không cần phải chỉ định rõ chúng thuộc những lớp cụ thể nào.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Adapter&lt;/span&gt;. Hoán chuyển giao diện của một lớp thành một giao diện khác theo yêu cầu của phía khách. Adapter cho phép những lớp có giao diện không tương thích cùng làm việc chung với nhau.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Bridge. &lt;/span&gt;Tách biệt phần trừu tượng và phần cài đặt thành 2 phần riêng rẽ, nhờ đó chúng có thể biến đổi độc lập.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Builder. &lt;/span&gt;Tách riêng quá trình kiến tạo nên một đối tượng phức tạp khỏi phần trình bày của nó, nhờ đó cùng một quá trình kiến tạo có thể dùng để tạo ra những phần trình bày khác nhau.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Chain of Responsibility.&lt;/span&gt; Gỡ bỏ sự trói buộc đối tượng gửi yêu cầu sử lý với một đối tượng nhận yêu cầu, bằng cách tạo điều kiện để nhiều hơn một đối tượng có thể tiếp nhận và sử lý yêu cầu đó. Ðể đạt được điều đó, những đối tượng nhận yêu cầu được kết nối với nhau thành một chuỗi, và yêu cầu sẽ được truyền dọc theo chuỗi đó cho đến khi có một đối tượng nào đó tiếp nhận nó.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Command.&lt;/span&gt; Gói gọn mỗi lời yêu cầu trong một đối tượng. Nó cho phép bạn gửi những lời yêu cầu khác nhau (dưới dạng các đối tượng) đến những đối tượng mà bạn không cần phải biết trước về những phương thức của chúng.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Composite.&lt;/span&gt; Sắp xếp các đối tượng theo cấu trúc cây để tạo ra một hệ thống phân cấp nguyên phân (part- whole hierarchy). Composite cho phép phía khách đối sử với những đối tượng riêng rẽ và những đối tượng đa hợp một cách đồng nhất.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Decorator&lt;/span&gt;. Gắn thêm trách nhiệm cho một đối tượng khi chương trình đang thực thi. Decorator cung cấp một giải pháp thay thế linh động hơn là thừa kế lớp để mở rộng thêm chức năng cho các lớp.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Facade. &lt;/span&gt;Cung cấp một giao diện đồng nhất cho tập hợp các giao diện trong một hệ thống phụ. Facade định nghĩa giao diện ở mức độ cao hơn, nhờ đó hệ thống phụ trở nên dễ sử dụng hơn.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Factory Method.&lt;/span&gt; Định nghĩa giao diện để tạo ra một đối tượng, nhưng lại để cho những lớp con quyết định nên tạo tao ra đối tượng từ những lớp nào. Factory Method cho phép một lớp nhường lại việc tạo ra các đối tượng cho các lớp con.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Flyweight.&lt;/span&gt; Sử dụng phương pháp "chia sẻ" để hỗ trợ một số lượng lớn các đối tượng hạt giống.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Intepreter. &lt;/span&gt;Dùng để biểu diễn thành phần ngữ pháp của một ngôn ngữ, dồng thời nó cũng tạo ra phần thông dịch để dịch những câu cú của ngôn ngữ đó theo những quy tắc ngữ pháp.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Iterator. &lt;/span&gt;Cung cấp cách thức để truy cập đến những phần tử của một đối tượng tập hợp (aggregate object) một cách tuần tự mà không cần đối tượng đó phải phơi bày những chi tiết ra bên ngoài.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Mediator. &lt;/span&gt;Dùng một đối tượng để bao bọc tất cả những mối tương tác giữa một tập hợp các đối tượng. Mediator khuyến khích việc gán ghép lỏng các đối tượng với nhau bằng cách giữ không cho chúng tương tác trực tiếp với nhau, nhờ đó bạn có thể biến đổi những mối tương tác đó một cách độc lập.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Memento.&lt;/span&gt; Nắm bắt và xuất ra ngoài trạng thái bên trong của một đối tượng sao cho sau đó chúng ta có thể dễ dàng phục hồi lại trạng thái đó. Memento làm công việc đó mà không vi phạm tính bao bọc của dữ liệu.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Observer.&lt;/span&gt; Định nghĩa mối quan hệ một-nhiều giữa các đối tượng sao cho khi một đối tượng thay đổi trạng thái của nó thì tất cả các đối tượng còn lại cũng được thông báo về sự thay đổi đó và tự động cập nhật.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Prototype.&lt;/span&gt; Quy định những dạng loại đối tượng được sinh ra dựa theo một đối tượng mẫu. Prototype tạo ra các đối tượng mới bằng cách copy từ đối tượng mẫu.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Proxy.&lt;/span&gt; Uỷ nhiệm quyền truy cập đến một đối tượng cho một đối tượng khác.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Singleton.&lt;/span&gt; Bảo đảm một lớp chỉ có thể có duy nhất một instance, và cung cấp quyền truy cập đến đối tượng đó ở phạm vi toàn cục.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;State. &lt;/span&gt;Cho phép một đối tượng thay đổi hành vi của mình khi trạng thái bên trong của nó thay đổi. Khi đó đối tượng giống như là thay đổi lớp vậy.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Strategy.&lt;/span&gt; Định nghĩa một dòng họ các giải thuật, bao bọc mỗi giải thuật bằng một đối tượng và làm cho chúng có thể thay thế lẫn nhau. Strategy giúp cho giải thuật có thể biến đổi một cách độc lập, không gây ảnh hưởng đến khách hàng sử dụng nó.&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;Template Method. &lt;/span&gt;Định nghĩa bộ xương cho một thuật toán bên trong một phương thức của lớp, và nhường lại một số công việc cho các lớp con. Template Method cho phép các lớp con tái định nghĩa một số phần trong thuật toán mà không làm thay đổi cấu trúc của thuật toán đó.&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Visitor. &lt;/span&gt;Thể hiện một thao tác cần phải thực hiện trên các phần tử của một cấu trúc đối tượng. Visitor cho phép bạn định nghĩa một thao tác mới mà không cần phải thay đổi các lớp của những phần tử đó.</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Sat, 08 Sep 2007 13:56:06 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>
&lt;table border="1" cellspacing="0" cols="6" frame="void" rules="groups"&gt;
	&lt;colgroup&gt;&lt;col width="86"&gt;&lt;col width="173"&gt;&lt;col width="63"&gt;&lt;col width="67"&gt;&lt;col width="68"&gt;&lt;col width="86"&gt;&lt;/colgroup&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td align="left" height="17" width="86"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left" width="173"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left" width="63"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left" width="67"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left" width="68"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left" width="86"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="center" height="25"&gt;&lt;b&gt;&lt;font size="4"&gt;DESIGN PATTERNS LIST&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="left" height="17"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="17"&gt;&lt;b&gt;&lt;font color="#ff0000"&gt;GANG OF FOUR&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;font color="#ff0000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="left" height="17"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="center" height="18"&gt;&lt;b&gt;STT&lt;/b&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;b&gt;Name&lt;/b&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;b&gt;Readed&lt;/b&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;b&gt;Reading&lt;/b&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;b&gt;Not read&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="28"&gt;&lt;b&gt;&lt;font size="3"&gt;Creational patterns&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="1" sdnum="1033;" align="center" height="17"&gt;1&lt;/td&gt;
			&lt;td align="left"&gt;Abstract Factory&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="2" sdnum="1033;" align="center" height="17"&gt;2&lt;/td&gt;
			&lt;td align="left"&gt;Builder&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="3" sdnum="1033;" align="center" height="17"&gt;3&lt;/td&gt;
			&lt;td align="left"&gt;Factory Method&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="4" sdnum="1033;" align="center" height="17"&gt;4&lt;/td&gt;
			&lt;td align="left"&gt;Prototype&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="5" sdnum="1033;" align="center" height="17"&gt;5&lt;/td&gt;
			&lt;td align="left"&gt;Singleton&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="28"&gt;&lt;b&gt;&lt;font size="3"&gt;Structural patterns&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="6" sdnum="1033;" align="center" height="17"&gt;6&lt;/td&gt;
			&lt;td align="left"&gt;Adapter&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="7" sdnum="1033;" align="center" height="17"&gt;7&lt;/td&gt;
			&lt;td align="left"&gt;Bridge&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="8" sdnum="1033;" align="center" height="17"&gt;8&lt;/td&gt;
			&lt;td align="left"&gt;Composite&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="9" sdnum="1033;" align="center" height="17"&gt;9&lt;/td&gt;
			&lt;td align="left"&gt;Decorator&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="10" sdnum="1033;" align="center" height="17"&gt;10&lt;/td&gt;
			&lt;td align="left"&gt;Facade&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#0000ff"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="11" sdnum="1033;" align="center" height="17"&gt;11&lt;/td&gt;
			&lt;td align="left"&gt;Flyweight&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="12" sdnum="1033;" align="center" height="17"&gt;12&lt;/td&gt;
			&lt;td align="left"&gt;Proxy&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#0000ff"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="29"&gt;&lt;b&gt;&lt;font size="3"&gt;Behavioral Patterns&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="13" sdnum="1033;" align="center" height="17"&gt;13&lt;/td&gt;
			&lt;td align="left"&gt;Chain Of Responsibility&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="14" sdnum="1033;" align="center" height="17"&gt;14&lt;/td&gt;
			&lt;td align="left"&gt;Command&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="15" sdnum="1033;" align="center" height="17"&gt;15&lt;/td&gt;
			&lt;td align="left"&gt;Interpreter&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="16" sdnum="1033;" align="center" height="17"&gt;16&lt;/td&gt;
			&lt;td align="left"&gt;Iterator&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#0000ff"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="17" sdnum="1033;" align="center" height="17"&gt;17&lt;/td&gt;
			&lt;td align="left"&gt;Mediator&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="18" sdnum="1033;" align="center" height="17"&gt;18&lt;/td&gt;
			&lt;td align="left"&gt;Memento&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="19" sdnum="1033;" align="center" height="17"&gt;19&lt;/td&gt;
			&lt;td align="left"&gt;Observer&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="20" sdnum="1033;" align="center" height="17"&gt;20&lt;/td&gt;
			&lt;td align="left"&gt;State&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="21" sdnum="1033;" align="center" height="17"&gt;21&lt;/td&gt;
			&lt;td align="left"&gt;Strategy&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="22" sdnum="1033;" align="center" height="17"&gt;22&lt;/td&gt;
			&lt;td align="left"&gt;Template Method&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="23" sdnum="1033;" align="center" height="17"&gt;23&lt;/td&gt;
			&lt;td align="left"&gt;Visitor&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800080"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="left" height="17"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;font color="#800080"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="17"&gt;&lt;b&gt;&lt;font color="#ff0000"&gt;ENTERPRISE APPLICATION&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="left" height="17"&gt;&lt;b&gt;&lt;font color="#ff0000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="center" height="18"&gt;&lt;b&gt;STT&lt;/b&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;b&gt;Name&lt;/b&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;b&gt;Readed&lt;/b&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;b&gt;Reading&lt;/b&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;b&gt;Not read&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="28"&gt;&lt;b&gt;&lt;font size="3"&gt;Domain logic&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="1" sdnum="1033;" align="right" height="17"&gt;1&lt;/td&gt;
			&lt;td align="left"&gt;Transaction Script&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="2" sdnum="1033;" align="right" height="17"&gt;2&lt;/td&gt;
			&lt;td align="left"&gt;Domain Model&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="3" sdnum="1033;" align="right" height="17"&gt;3&lt;/td&gt;
			&lt;td align="left"&gt;Table Module&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="4" sdnum="1033;" align="right" height="17"&gt;4&lt;/td&gt;
			&lt;td align="left"&gt;Service Layer&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="31"&gt;&lt;b&gt;&lt;font size="3"&gt;Data Source Architectural&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="5" sdnum="1033;" align="right" height="17"&gt;5&lt;/td&gt;
			&lt;td align="left"&gt;Table Data Gateway&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="6" sdnum="1033;" align="right" height="17"&gt;6&lt;/td&gt;
			&lt;td align="left"&gt;Row Data Gateway&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="7" sdnum="1033;" align="right" height="17"&gt;7&lt;/td&gt;
			&lt;td align="left"&gt;Active Record&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="8" sdnum="1033;" align="right" height="17"&gt;8&lt;/td&gt;
			&lt;td align="left"&gt;Data Mapper&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="26"&gt;&lt;b&gt;&lt;font size="3"&gt;Object – Relational Behavioral&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="9" sdnum="1033;" align="right" height="17"&gt;9&lt;/td&gt;
			&lt;td align="left"&gt;Unit Of Work&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="10" sdnum="1033;" align="right" height="17"&gt;10&lt;/td&gt;
			&lt;td align="left"&gt;Identity Map&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="11" sdnum="1033;" align="right" height="17"&gt;11&lt;/td&gt;
			&lt;td align="left"&gt;Lazy Load&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="33"&gt;&lt;b&gt;&lt;font size="3"&gt;Object – Relational Structural&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="12" sdnum="1033;" align="right" height="17"&gt;12&lt;/td&gt;
			&lt;td align="left"&gt;Identity Field&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="13" sdnum="1033;" align="right" height="17"&gt;13&lt;/td&gt;
			&lt;td align="left"&gt;Foreign Key Mapping&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="14" sdnum="1033;" align="right" height="17"&gt;14&lt;/td&gt;
			&lt;td align="left"&gt;Dependent Mapping&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="15" sdnum="1033;" align="right" height="17"&gt;15&lt;/td&gt;
			&lt;td align="left"&gt;Embedded Value&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="16" sdnum="1033;" align="right" height="17"&gt;16&lt;/td&gt;
			&lt;td align="left"&gt;Serialized LOB&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="17" sdnum="1033;" align="right" height="17"&gt;17&lt;/td&gt;
			&lt;td align="left"&gt;Single Table Inheritance&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="18" sdnum="1033;" align="right" height="17"&gt;18&lt;/td&gt;
			&lt;td align="left"&gt;Class Table Inheritance&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="19" sdnum="1033;" align="right" height="17"&gt;19&lt;/td&gt;
			&lt;td align="left"&gt;Concrete Table Inheritance&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="20" sdnum="1033;" align="right" height="17"&gt;20&lt;/td&gt;
			&lt;td align="left"&gt;Inheritance Mappers&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="28"&gt;&lt;b&gt;&lt;font size="3"&gt;Object – Relational Metadata Mapping&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="21" sdnum="1033;" align="right" height="18"&gt;21&lt;/td&gt;
			&lt;td align="left"&gt;Metadata mapping&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="22" sdnum="1033;" align="right" height="17"&gt;22&lt;/td&gt;
			&lt;td align="left"&gt;Query Object&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="23" sdnum="1033;" align="right" height="17"&gt;23&lt;/td&gt;
			&lt;td align="left"&gt;Repository&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="20"&gt;&lt;b&gt;&lt;font size="3"&gt;Web Presentation&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="24" sdnum="1033;" align="right" height="17"&gt;24&lt;/td&gt;
			&lt;td align="left"&gt;Model View Controller&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="25" sdnum="1033;" align="right" height="17"&gt;25&lt;/td&gt;
			&lt;td align="left"&gt;Page Controller&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="26" sdnum="1033;" align="right" height="17"&gt;26&lt;/td&gt;
			&lt;td align="left"&gt;Front Controller&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="27" sdnum="1033;" align="right" height="17"&gt;27&lt;/td&gt;
			&lt;td align="left"&gt;Template View&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="28" sdnum="1033;" align="right" height="17"&gt;28&lt;/td&gt;
			&lt;td align="left"&gt;Transform View&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="29" sdnum="1033;" align="right" height="17"&gt;29&lt;/td&gt;
			&lt;td align="left"&gt;Two Step View&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="30" sdnum="1033;" align="right" height="17"&gt;30&lt;/td&gt;
			&lt;td align="left"&gt;Application View&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="29"&gt;&lt;b&gt;&lt;font size="3"&gt;Distribution&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="31" sdnum="1033;" align="right" height="17"&gt;31&lt;/td&gt;
			&lt;td align="left"&gt;Remote Facade&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="32" sdnum="1033;" align="right" height="17"&gt;32&lt;/td&gt;
			&lt;td align="left"&gt;Data Transfer Object&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="30"&gt;&lt;b&gt;&lt;font size="3"&gt;Offline Concurrency&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="33" sdnum="1033;" align="right" height="18"&gt;33&lt;/td&gt;
			&lt;td align="left"&gt;Optimistic Offline Lock&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="34" sdnum="1033;" align="right" height="18"&gt;34&lt;/td&gt;
			&lt;td align="left"&gt;Pessimistic Offline Lock&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="35" sdnum="1033;" align="right" height="17"&gt;35&lt;/td&gt;
			&lt;td align="left"&gt;Coarse-Grained Lock&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="36" sdnum="1033;" align="right" height="17"&gt;36&lt;/td&gt;
			&lt;td align="left"&gt;Implicit Lock&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="27"&gt;&lt;b&gt;&lt;font size="3"&gt;Session State&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="37" sdnum="1033;" align="right" height="17"&gt;37&lt;/td&gt;
			&lt;td align="left"&gt;Client Session State&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="38" sdnum="1033;" align="right" height="17"&gt;38&lt;/td&gt;
			&lt;td align="left"&gt;Server Session State&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="39" sdnum="1033;" align="right" height="17"&gt;39&lt;/td&gt;
			&lt;td align="left"&gt;Database Session State&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td colspan="5" align="left" height="27"&gt;&lt;b&gt;&lt;font size="3"&gt;Base Patterns&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="40" sdnum="1033;" align="right" height="17"&gt;40&lt;/td&gt;
			&lt;td align="left"&gt;Gateway&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="41" sdnum="1033;" align="right" height="17"&gt;41&lt;/td&gt;
			&lt;td align="left"&gt;Mapper&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="42" sdnum="1033;" align="right" height="18"&gt;42&lt;/td&gt;
			&lt;td align="left"&gt;Layer Supertype&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="43" sdnum="1033;" align="right" height="17"&gt;43&lt;/td&gt;
			&lt;td align="left"&gt;Separated Interface&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="44" sdnum="1033;" align="right" height="17"&gt;44&lt;/td&gt;
			&lt;td align="left"&gt;Registry&lt;/td&gt;
			&lt;td align="center"&gt;X&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="45" sdnum="1033;" align="right" height="17"&gt;45&lt;/td&gt;
			&lt;td align="left"&gt;Value Object&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="46" sdnum="1033;" align="right" height="17"&gt;46&lt;/td&gt;
			&lt;td align="left"&gt;Money&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="47" sdnum="1033;" align="right" height="17"&gt;47&lt;/td&gt;
			&lt;td align="left"&gt;Special Case&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="48" sdnum="1033;" align="right" height="17"&gt;48&lt;/td&gt;
			&lt;td align="left"&gt;Plugin&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="49" sdnum="1033;" align="right" height="17"&gt;49&lt;/td&gt;
			&lt;td align="left"&gt;Service Stub&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td sdval="50" sdnum="1033;" align="right" height="17"&gt;50&lt;/td&gt;
			&lt;td align="left"&gt;Record Set&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="center"&gt;&lt;font color="#800000"&gt;X&lt;/font&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td align="left" height="17"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
			&lt;td align="left"&gt;&lt;br&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Sat, 08 Sep 2007 14:01:35 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Trên đây là tiến độ mà mình đang nghiên cứu, với những Patterns đã nghiên cứu, mình đã lưu tài tiệu lại, mình sẽ pop lên hàng ngày cho mọi người</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Sat, 08 Sep 2007 14:09:02 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Phạm Hải'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>uh! đúng là hàng độc chiêu thật... bác up tiếp cho a e nhé&lt;br&gt;Thanks</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Sat, 08 Sep 2007 15:04:22 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Kim Khanh'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Tôi cũng đang nghiên cứu nhưng thấy khó quá. Anh  có cuốn "Professional C# Design Patterns Applied 2003.pdf" của thằng Wrox không? Nếu có thì share cho tôi với.&lt;br&gt;GM: itjunkie@gmail.com&lt;br&gt;Tôi chỉ tìm được chương 3 của cuốn này thôi.</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Sun, 09 Sep 2007 21:14:07 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Để có kiến thứ vững chắc trước khi vào DP thì các bạn nên xem lại các phần cơ bản về ngôn ngữ (ở đây mình chuyên về C#) các bạn có thể Download cuốn </description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Mon, 10 Sep 2007 11:14:20 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Để có kiến thứ vững chắc trước khi vào DP thì các bạn nên xem lại các phần cơ bản về ngôn ngữ (ở đây mình chuyên về C#) các bạn có thể Download cuốn "Introduction to Design Patterns in C#" của các giả "James W. Cooper". Nếu ko có thì các bạn có thể liên hệ với mình qua email inheavytb83@yahoo.com. Còn về DP thì mĩnh sẽ POP lên tài liệu tiếng Việt cho&lt;br&gt;</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Mon, 10 Sep 2007 11:19:33 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Kim Khanh'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>cuốn "Introduction to Design Patterns in C#"  mình đã xem qua nhưng thấy khó hiểu quá, nhất là lấy máy cái ví dụ.&lt;br&gt;Bạn nên post tài liệu Tiếng Việt nhanh nhanh để anh em dễ hiểu chút, chứ cái này trừu tượng quá.</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Mon, 10 Sep 2007 11:24:16 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Ban ngày mình phải làm việc. dự định tối nay mình sẽ pop bài lên. Nếu bạn nào có thắc mắc j có thể trao đổi qua YAHOO NICK (inheavytb83)&lt;br&gt;OK?</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Mon, 10 Sep 2007 14:33:44 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>&lt;font size="4"&gt;&lt;span style="font-weight: bold;"&gt;Singleton Pattern - mẫu thiết kế đơn nhất&lt;br&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;1. Định nghĩa&lt;/span&gt;&lt;br&gt;Singleton Pattern là pattern đảm bảo rằng một lớp chỉ có một thể hiện (instance) duy nhất và trong đó cung cấp một cổng giao tiếp chung nhất để truy cập vào lớp đó.&lt;br&gt;&lt;br&gt;Một số ví dụ về Singleton Pattern: file system, file manager, window manager, printer spooler, ngày giờ… &lt;br&gt;Hộp thoại Find, một ví dụ cụ thể cho Singleton Pattern chỉ một hộp thoại duy nhất xuất hiện dù chọn menu nhiều lần. Chẳng hạn, khi dùng Microsoft Word, mỗi lần ấn Ctrl+F, bạn thấy hiện ra một hộp thoại Find giúp ta tìm từ trong tài liệu. Cho dù bạn mở nhiều tài liệu cùng lúc, ta chỉ cần một hộp thoại Find duy nhất mà thôi. Bạn thử hình dung, nếu cứ mỗi lần ấn Ctrl+F thì xuất hiện hộp thoại Find mới, chắc chắn người dùng sẽ lúng túng đóng bớt các hộp thoại dư thừa. Ngoài ra, họ thường muốn thấy lại hộp thoại Find đã dùng lần trước với những từ cần tìm vẫn còn lưu lại ở đấy. Về mặt kỹ thuật, việc tạo ra một hộp thoại Find duy nhất và dùng lại nhiều lần rõ ràng tiết kiệm đáng kể tài nguyên hệ thống. Cho dù người dùng đóng hộp thoại Find, ta chỉ nên giấu nó đi chứ không nên hủy bỏ nó để rồi phải tạo mới khi người dùng cần đến lần nữa. Nhờ làm như vậy, ta cũng dễ dàng lưu giữ các từ đã tìm ngay trong hộp thoại Find.&lt;br&gt;Nếu phải viết một lớp biểu diễn hộp thoại Find, hẳn bạn phải suy nghĩ cách thức sao cho chỉ có một đối tượng của lớp ấy được tạo ra. Các đồng nghiệp dùng đến lớp của bạn trong chương trình của họ sẽ không thể tạo ra hai hay nhiều đối tượng hơn từ lớp ấy (không thể đặt ra hạn chế chỉ bằng cách... "nhắn nhủ", sẽ chẳng ai nhớ đâu, ngay cả bạn nữa). &lt;br&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;2. Lợi ích&lt;/span&gt;&lt;br&gt;Việc sử dụng Singleton Pattern đem lại các lợi ích sau:&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;ul&gt;&lt;li&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;Quản lý việc truy cập tốt hơn vì chỉ có một thể hiện đơn nhất.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;Cho phép cải tiến lại các tác vụ (operations) và các thể hiện (representation) do pattern có thể được kế thừa và tùy biến lại thông qua một thể hiện của lớp con&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;Quản lý số lượng thể hiện của một lớp, không nhất thiết chỉ có một thể hiện mà có số thể hiện xác định.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;Khả chuyển hơn so với việc dùng một lớp có thuộc tính là static, vì việc dùng lớp static chỉ có thể sử dụng một thể hiện duy nhất, còn Singleton Pattern cho phép quản lý các thể hiện tốt hơn và tùy biến theo điều kiện cụ thể.&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;3. Trường hợp sử dụng&lt;/span&gt;&lt;br&gt;Người lập trình có thể dùng Singleton Pattern trong những trường hợp sau:&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;ul&gt;&lt;li&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;Trong trường hợp chỉ cần một thể hiện duy nhất của một lớp.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;Khi thể hiện duy nhất khả mở thông qua việc kế thừa, người dùng có thể sử dụng thể hiện kế thừa đó mà không cần thay đổi các đoạn mã của chương trình.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;4. Cách thực hiện&lt;/span&gt;&lt;br&gt;Thực hiện Singleton Pattern theo các bước sau:&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;ul&gt;&lt;li&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;Định nghĩa một thuộc tính private và static trong lớp Singleton: instance.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;Định nghĩa tất cả các constructor thành protected hoặc private để người dùng không thể tạo thực thể trực tiếp từ lớp.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;Định nghĩa một accessor public và static trong lớp: getInstance().&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;Thực hiện "lazy initialization" (khởi tạo chậm, khởi tạo khi yêu cầu) trong getInstance(): trả về một thể hiện mới hay một giá trị rỗng (null) tùy thuộc vào một biến boolean, biến này như một cờ hiệu dùng báo xem lớp đó đã có thể hiện hay chưa.&lt;br&gt;Clients chỉ dùng getInstance() để tạo đối tượng của lớp Singleton.&lt;br&gt;Thừa kế cũng được hỗ trợ, nhưng không che (overridden) các phương thức static: lớp cơ sở phải được khai báo là friend với lớp dẫn xuất (để truy xuất đến protected constructor). &lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;5. Các pattern liên quan&lt;/span&gt;&lt;br&gt;Abstract Factory: thường dùng để trả về các đối tượng duy nhất.&lt;br&gt;Builder: dùng tạo một đối tượng phức tạp, trong đó Singleton được dùng để tạo một đối tượng truy xuất tổng quát.&lt;br&gt;Prototype: dùng để sao chép một đối tượng, hoặc tạo ra một đối tượng khác từ prototype (nguyên mẫu) của nó, trong đó Singleton được dùng để chắc chắn chỉ có một prototype. &lt;br&gt;&lt;span style="font-style: italic;"&gt;Chú ý các chú thích trong chương trình kiểm tra: cột trái là các số xuất hiện khi dùng Singleton (chỉ có một thể hiện duy nhất của lớp), cột phải là các số xuất hiện khi không dùng Singleton (có hai thể hiện của lớp). &lt;br&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br&gt;6. Tổng kết&lt;/span&gt;&lt;br&gt;Một singleton đảm bảo cho bạn rằng chỉ một instance duy nhất của lớp được tạo và cho phép trong tương lai bạn có thể tạo nhiều instance mà không ảnh hưởng đến mã nguồn của lớp gọi.&lt;span style="font-style: italic;"&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/font&gt;</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Mon, 10 Sep 2007 20:09:14 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Xin lỗi vì mình chưa chuẩn bị mấy cái ảnh về các diagram lên. Mình sẽ EDIT sau</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Mon, 10 Sep 2007 20:22:21 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Le Hoang Minh'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Bạn Trọng cho mình hỏi tý nhé:&lt;br&gt;Mình có một màn hình nhập liệu cho phép người sử dụng nhập hóa đơn mua hàng. Mỗi lần nhập một hóa đơn thì số hóa đơn sẽ do chương trình tự phát sinh. Nhưng tại một thời điểm, có thể có 2, 3 hoặc nhiều người cùng nhập. Mình muốn mỗi lần phát sinh số hóa đơn chỉ phát sinh một số duy nhất. Như vậy có thể áp dụng mẫu Singleton được không?&lt;br&gt;&lt;br&gt;VD: Khi user A đang lập một hóa đơn có mã HD001 (chưa lưu). Cùng thời điểm user A đang lập hóa đơn HD001, user B cũng mở ctrình lên để lập hóa đơn thì chương trình phải phát sinh số hóa đơn cho HD002 cho user B. </description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Tue, 11 Sep 2007 13:34:27 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'trananhquanapt'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>@Le Hoang Minh: 2 chương trình khác nhau thì không thể dùng Singleton được. Chương trình của bạn có lẽ nên hiển thị thông báo lỗi cho User B nếu User A trước đó đã lưu và sau đó User B đặt lệnh Lưu hóa đơn :) Hoặc lúc User B lưu, bạn sẽ confirm : " Hóa đơn có mã: HD001 đã có. Bạn có muốn mã hóa đơn : HD002 ", đại loại thế :)</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Tue, 11 Sep 2007 13:46:09 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Re: Le Hoang Minh&lt;br&gt;Nếu bạn sử dụng khéo thì OK. ví dụ như khi bạn gọi một hành động là Singleton thì nó tự động inc ID lên.&lt;br&gt;&lt;br&gt;VD: Khi user A đang lập một hóa đơn có mã HD001 (&lt;span style="color: red;"&gt;chưa lưu&lt;/span&gt;).&lt;br&gt;&lt;br&gt;- Với &lt;span style="color: red;"&gt;(chưa lưu)&lt;/span&gt; thì mình muốn nhắc bạn là khi tạo mã tự động thì việc EXECUTE() nên làm ngay. Bởi vì mình còn thắc mắc là tại sao lại tạo ID tự động trước khi xử lý.&lt;br&gt;&lt;br&gt;&lt;br&gt;Re: trananhquanapt&lt;br&gt;- "@Le Hoang Minh: 2 chương trình khác nhau thì không thể dùng Singleton được."&lt;br&gt;&lt;br&gt;- "2 chương trình khác nhau" là sao?&lt;br&gt;&lt;br&gt;(Rất vui vì sự đóng góp ý kiến của Le Hoang Minh và trananhquanapt)&lt;br&gt;</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Wed, 12 Sep 2007 20:29:28 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'trananhquanapt'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>2 chương trình khác nhau ở đây tức là theo như mô tả, sẽ mở 2 cửa sổ ứng dụng lên, tức là mở 1 phần mềm 2 lần, có thể ở 1 hoặc nhiều máy khác nhau. Các đối tượng được tạo ra, được lưu trong bộ nhớ đối với mỗi 1 phần mềm/1 lần chạy là khác nhau. &lt;br&gt;Theo như mẫu Singleton mà anh đưa ra, thì giả sử có 2 thread cùng truy xuất thì không biết như nào, xin anh nói rõ hơn về cơ chế lock được ko ạ</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Thu, 13 Sep 2007 13:41:59 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>OK. Đêm nay mình sẽ trả lời cho các bạn. giờ đang làm việc</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Thu, 13 Sep 2007 14:57:48 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Mình hiểu ý của trananhquanapt. &lt;br&gt;- Trường hợp thứ nhất: Đơn giản 1 Singleton sử dụng trong 2 FORM hiễn thị khác nhau. OK, Singleton áp dụng được.&lt;br&gt;- Trường hợp thứ 2: Mở 1 phần mềm 2 lần (củ chuối). Lúc đó "mỗi phần mềm" là mỗi tiến trình khác nhau. Singleton vô nghĩa.&lt;br&gt;- Trường hợp thứ 3: Ứng dụng được cài đặt trên máy Client/Server cùng truy xuất đến 1 cơ sở dữ liệu trên server cũng chưa nói lên được j cã.&lt;br&gt;- Trường hợp thứ tư: Ứng dụng của bạn chạy trên WebService, thì trường hợp đụng độ sẽ xảy ra như cac bạn thắc mắc. Vì lúc đó các phương thức truy xuất được dùng chung trên webservice. (Đây là trường hợp xảy ra mà mình nghĩ như các bạn mong đợi câu trả lời). Singleton sẽ là một phần cho việc giải quyết đụng độ.&lt;br&gt;&lt;br&gt;-  À còn cái thread nữa. OK, thread sẽ cho cac sbạn thấy rất rõ ràng về ứng dụng Singleton. Trường hợp này đơn giản mà dễ hiểu hơn, ta có thể tạo ra nhiều thread cùng lúc (vừa phải thôi nghe, nhiều lắm cũng không tốt đâu) để truy cập đến đối tượng Singleton, Các bạn sẽ thấy được TÍNH DUY NHẤT của nó. &lt;br&gt;+ Cơ chế lock(). Ví dụ có 1 biến int i là toàn cục. Bạn tạo ra một số thread (mỗi thread chỉ có nhiệm vụ tăng biến i đó lên 1 đơn vị) . Nếu như vô tình có ít nhất 2 thread cùng thực hiện tăng biến i lên 1 lúc thì xảy ra đụng độ ngay. Cơ chế lock() ứng dụng ở đây có nhiệm vụ là nó sẽ lock đối tượng nào là nguyên nhân xảy ra đụng độ (i toàn cục) tất cã các thread nếu muốn làm việc với "i toàn cục" thì đều phải xếp hàng. Nó sẽ cho tuần tự từng thread 1 thực hiện công việc tăng biến i lên, lúc nào kết thúc công việc tăng thì nó mới cho phép thread tiếp theo thực hiện tăng biến i&lt;br&gt;</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Thu, 13 Sep 2007 20:58:33 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'trananhquanapt'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Cảm ơn anh đã trả lời. Thật ra thì việc lock là vấn đề căn bản và quan trọng trong lập trình multithread. Em mới chuyển từ java sang làm .NET nên ko rõ lock trong .NET cụ thể là như nào, nhưng cũng đã search ra rồi. hóa ra cuốn sách căn bản C# nào cũng có, chỉ tại mình chưa đọc kĩ ^^</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Sat, 15 Sep 2007 10:11:27 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'trananhquanapt'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>http://www.dofactory.com/Patterns/Patterns.aspx&lt;br&gt;Trang này liệt kệ các pattern và cả code ví dụ nữa nè</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Sat, 15 Sep 2007 10:13:45 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Dinh Xuan Luong'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>&lt;P&gt;Mình mới bắt đầu tìm hiểu về cái này thôi, vậy với mỗi mẫu bạn có thể kèm theo 1 ví dụ đơn giản hoặc&amp;nbsp;1 ví dụ thực tế nho nhỏ giải thích bằng tiếng Việt đc ko.&lt;/P&gt;</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Tue, 18 Sep 2007 01:29:23 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Dưới đây là danh sách các site về Design Patterns, các bạn xem nhé, ví dụ cũng nhiều với từng DP&lt;br&gt;- Số 1 là phải: http://home.earthlink.net/~huston2/dp/patterns.html&lt;br&gt;- Các slide thì: http://www.cse.wustl.edu/~cdgill/courses/cse432/&lt;br&gt;- Ngoài ra: &lt;br&gt;       + http://exciton.cs.rice.edu/JavaResources/DesignPatterns/default.htm&lt;br&gt;       + http://www.allapplabs.com/java_design_patterns/state_pattern.htm&lt;br&gt;       + http://www.java-interview.com/design_patterns_interview_questions.html&lt;br&gt;- Trên đây là những site mà mình đang xem, còn nhiều nữa. Xem chứng ấy cũng mệt rồi, rất nhiều examples. Còn tài liệu tiếng Việt thì mình sẽ cung cấp.&lt;br&gt;- À! Upload ảnh lên theo các bạn thì upload ở đâu là tốt nhỉ, các bạn có thể giúp mình được chứ </description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Wed, 19 Sep 2007 08:01:47 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'ho thi yen ly'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>minh cung moi nghien cua ve Design Patterns.mong anh Trong goi giup em tailieu bang tieng VIet voi nha.thanks</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Sat, 22 Sep 2007 21:53:39 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Minh Se POP len de moi nguoi cung tham khao luon&lt;br&gt;OK nhé</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Tue, 25 Sep 2007 08:53:22 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Le Hoang Minh'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Bữa giờ công việc bận quá nên không thường xuyên vô diễn đàn, không ngờ các bạn nhiệt tình với câu hỏi của mình quá. Cảm ơn các bạn rất nhiều. Mình đã hiểu được vấn đề và khi nào thì ứng dụgn được mẫu singleton. Trường hợp của mình chắc là dùng Thread thì tiện hơn. Cảm ơn các bạn rất nhiều</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Tue, 25 Sep 2007 09:08:04 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Cao Hieu'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>@Le Hoang Minh: viec nay ban co the su dung 1 lop quan li viec truy nhap cua cac user va khi co truy cap tu user toi ban co the cho tra lai so hoa don theo quy luat ma ban mong muon ( cai nay co the la 1 service).</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Thu, 27 Sep 2007 12:40:54 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Le Hoang Minh'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>@Cao Hieu: Vì mỗi lần đăng nhập user có thể lập nhiều hóa đơn, mỗi hóa đơn có một số thứ tự và số thứ tự này phải liên tục nhau. Cùng một lúc có thể có nhiều user đang đăng nhập và đang lập hóa đơn. Vấn đề là làm sao cho số thứ tự hóa đơn do user A lập và số thứ tự của hóa đơn do user B nhập phải liên tiếp nhau. Ví dụ User A đã lưu hóa đơn 001, thì hóa đơn của user B  là 002, và nếu user A có new một hóa đơn sẽ là 003. Nếu ta dùng một lớp để quản lý việc truy nhập của các user thì mình nghĩ không làm được yêu cầu này.</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Fri, 28 Sep 2007 08:46:01 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Vấn đề các bạn bàn luận ở đây là liên quan đến coding trong Database rồi. Mình thì ko code nhiều nhưng có thể đưa ra ý tưởng này cho các bạn:&lt;br&gt;- Tạo 1 trigger cho việc lưu Hóa Đơn, trước khi thực hiện INSERT bạn có thể thực hiện câu lệnh lấy ra hóa đơn có chỉ số lớn nhất, rồi tăng ID của mình lên mới UPDATE. Chú ý là phải kiểm tra Timestamp &lt;br&gt;(timestamp sẽ quy định thời gian cần cập nhật mới thông tin)&lt;br&gt;</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Fri, 28 Sep 2007 11:17:41 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>&lt;font size="4"&gt;&lt;span style="color: red;"&gt;Mời các bạn đến với mẫu Prototype của GANG OF FOUR&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;a href="http://www.dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Design_Pattern_Prototype/"&gt;http://www.dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Design_Pattern_Prototype/&lt;/a&gt;</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Fri, 28 Sep 2007 11:18:58 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Vy Dau Bac'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Bạn ơi bạn nghiên cứu nhiều thế. Bạn định làm Software Architect hả? Chúc thành công nhé. Mình cũng mê mấy thứ này lắm cũng đọc nhiều lắm. Mình cũng lưu ý bạn là nên kiếm một project nào đó thực tế để làm và ứng dụng nó vào nếu không cũng chỉ là lý thuyết mà thôi (thực tế nó khác).</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Mon, 01 Oct 2007 08:31:04 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Le Hoang Minh'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Cái này mình lấy được trong dofactory.com, post lên cho mọi người tham khảo.</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Wed, 10 Oct 2007 09:09:05 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Le Hoang Minh'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Bó tay luôn. Sao upload file thành công rồi mà không thấy hiển thị trong bài viết vậy? Bạn nào đã từng upload file rồi thì chỉ mình với</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Wed, 10 Oct 2007 09:10:17 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>hè hè, jống tớ thế</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Wed, 10 Oct 2007 15:10:39 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'lqdonline'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>hi</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Tue, 25 Dec 2007 23:48:03 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Cantavil Vietnam'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>emule sẽ cho bạn tất cả các tài liệu cần thiết&lt;br&gt;&lt;br&gt;liên hệ với mình để lấy sách design pattern nhé&lt;br&gt;&lt;br&gt;cantavil.vietnam@gmail.com</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Sat, 29 Dec 2007 23:48:29 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>emule đặc biệt ko giống như các ứng dụng download. Nó tự động truy cập đến máy tính khác để lấy dữ liệu. do đó yếu điểm của nó là download rất rất rất rất chậm. Nhưng người nào kiên nhẫn thì sẽ biết được hiệu quả của nó như thế nào, đó là đẵng cấp của Emule.</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Mon, 31 Dec 2007 11:53:30 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'saoviet_itvn'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>Em mới học  C#, Nhưng đã học laapj trình hướng đối tượng với java nên cũng biết qua về DP , nhưng còn ởmứ đọ cơ bản, Bác pó tiếp lên cho  em  tham khảo cái nha , thanks</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Fri, 23 May 2008 09:31:00 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'suaisc'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>hi all !!&lt;br&gt;bạn nào có tài liệu về DP thì share cho mình với ha , theo địa chỉ email : suaisc@gmail.com .&lt;br&gt;Chúc cộng đồng C# ngày càng vững mạnh -&gt;  sau này chúng ta mới có đất dụng võ ha bà con .&lt;br&gt;thanks !!!</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Fri, 04 Jul 2008 10:16:33 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
<item>
<title>Trả lời của 'Trần Bình Trọng'</title>
<link>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</link>
<description>@neo: Đây chính là dòng code của bạn. đề nghị bạn nên remove nó ra gấp&lt;br&gt;&lt;pre id="line214"&gt;&lt;span class="attribute-value"&gt;&lt;/span&gt;&lt;span class="attribute-name"&gt;onmouseover&lt;/span&gt;=&lt;span class="attribute-value"&gt;"alert('haizzz')" &lt;/span&gt;&lt;span class="attribute-name"&gt;onmouseout&lt;/span&gt;=&lt;span class="attribute-value"&gt;"alert('o kia!!!')"&lt;/span&gt;&lt;/pre&gt;</description>
<author>automail-noreply@dot.net.vn</author>
<pubDate>Mon, 14 Jul 2008 09:14:58 GMT</pubDate>
<source>http://dot.net.vn/Desktop.aspx/Threads/CanBan-dotNET-Framework/Chuyen_de_Design_Patterns_hang_doc_chieu/</source>
<category>Căn bản về .NET Framework</category>
</item>
</channel>
</rss>