|
|
Trang chủ
>
Diễn đàn .NET Việt Nam
>
Công nghệ nền tảng .NET/Mono
>
Căn bản về .NET Framework | | | | |
Chuyên đề Design Patterns (hàng độc chiêu)
| 12973
/
39 |  | | Trần Bình Trọng Thành viên mới | | Đăng ký:
27/03/2006 Tham gia:
27/03/2006 Điểm:
699 Bài:
156 |
|
| Gửi lúc:
12/09/2007 08:29:28 PM
-
Trần Bình Trọng
sửa đổi lúc:
12/09/2007 08:32:39 PM | | Re: Le Hoang Minh 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.
VD: Khi user A đang lập một hóa đơn có mã HD001 (chưa lưu).
- Với (chưa lưu) 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ý.
Re: trananhquanapt - "@Le Hoang Minh: 2 chương trình khác nhau thì không thể dùng Singleton được."
- "2 chương trình khác nhau" là sao?
(Rất vui vì sự đóng góp ý kiến của Le Hoang Minh và trananhquanapt)
|
| | trananhquanapt Thành viên mới | | Đăng ký:
08/08/2007 Tham gia:
08/08/2007 Điểm:
20 Bài:
5 |
|
| Gửi lúc:
13/09/2007 01:41:59 PM |  | | 2 chương trình khác nhau ở đây tức là theo như mô tả, sẽ mở 2 cửa sổ ứng dụng lên, tức là mở 1 phần mềm 2 lần, có thể ở 1 hoặc nhiều máy khác nhau. Các đối tượng được tạo ra, được lưu trong bộ nhớ đối với mỗi 1 phần mềm/1 lần chạy là khác nhau. Theo như mẫu Singleton mà anh đưa ra, thì giả sử có 2 thread cùng truy xuất thì không biết như nào, xin anh nói rõ hơn về cơ chế lock được ko ạ |
| | Trần Bình Trọng Thành viên mới | | Đăng ký:
27/03/2006 Tham gia:
27/03/2006 Điểm:
699 Bài:
156 |
|
| Gửi lúc:
13/09/2007 02:57:48 PM |  | | | OK. Đêm nay mình sẽ trả lời cho các bạn. giờ đang làm việc |
| | Trần Bình Trọng Thành viên mới | | Đăng ký:
27/03/2006 Tham gia:
27/03/2006 Điểm:
699 Bài:
156 |
|
| Gửi lúc:
13/09/2007 08:58:33 PM |  | | Mình hiểu ý của trananhquanapt. - 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. - 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. - 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ã. - 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 độ.
- À 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ó. + 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
|
| | trananhquanapt Thành viên mới | | Đăng ký:
08/08/2007 Tham gia:
08/08/2007 Điểm:
20 Bài:
5 |
|
| Gửi lúc:
15/09/2007 10:11:27 AM |  | | | 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ĩ ^^ |
| | trananhquanapt Thành viên mới | | Đăng ký:
08/08/2007 Tham gia:
08/08/2007 Điểm:
20 Bài:
5 |
|
| Gửi lúc:
15/09/2007 10:13:45 AM |  | | http://www.dofactory.com/Patterns/Patterns.aspx Trang này liệt kệ các pattern và cả code ví dụ nữa nè |
| | Dinh Xuan Luong Thành viên mới | | Đăng ký:
18/09/2007 Tham gia:
18/09/2007 Điểm:
4 Bài:
1 |
|
| Gửi lúc:
18/09/2007 01:29:23 AM |  | | 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 1 ví dụ thực tế nho nhỏ giải thích bằng tiếng Việt đc ko. |
|
|
| | | | | Chủ đề mới: | cho mình hỏi câu cơ bản tí thanks trước nhé
(75/1)
Bắt đầu học Dot Net như thể nào?
(9273/48)
Điểm khác nhau giữa hai đoạn code
(420/4)
Giải phóng bộ nhớ
(1390/3)
Xin chương trình dịch ngược mã nguồn của .NET ?
(7214/23)
LAP TRINH HUONG DOI TUONG
(3514/18)
convert từ .net framework 1.1 sang framework 2.0
(188/2)
 | | | Chủ đề khác: | | Mới học .Net
(716/3)
Test Automation???
(2596/8)
System.IO.Directory.Move
(1094/3)
Căn bản về .NET
(14780/20)
Tự học C# căn bản.
(3088/6)
net framework 3.5 configuration tool?
(1582/1)
Socket and Port
(1690/5)
|  | |
|
|
|