Đang ngâm cứu vấn đề khác lại vớ dc bài viết này khá hay, post lên lun. Chỉ có mấy dòng, mí lại cũng đơn jản, nên chắc kô cần fải dịch ra đâu nhở 
One of the most critics about Object Orientation for real world projects I get during the speaks is: OOP isn't performant .
Considering a very simple example where a class Customer contains a
list of classes Order. For the best OO philosophy we should have three
types: Customer representing a single customer entity, Order which is
an order entity and an Orders class wich is a list of Order entities
(strongly typed collection of Order types). Normally, all objects are, in some way, mapped over a relational
database and when the consumer wants some information about a customer,
they are loaded from the database. The standard .NET way (many devs adopt this one) is to use a DataSet
with two DataTable with a relation. The OOP way should be to load all
informations from the database (maybe using a ORM tool ) and expose them through it's object model. This approach can provide some performances drawback when we load
all informations (for all entities) at the same time (object creation
time), especially if we need only some info from the customer and not
it's orders. Another approach consits in loading the deep information (in this sample the Orders) only on demand, as the Lazy Initialization pattern suggests. Considering the following pseudocode: public class Customer { // all code here public Orders CustomerOrders; public void Load(int customerID) { // Load the customer from DB and also it's orders (ie. Orders.Load(customerID)) } } Can be refactored to: public class Customer { // all code here private Orders _customerOrders = null; public Orders CustomerOrders { get { if(_customerOrders == null) _customerOrders = Orders.Load(customerID); return _customerOrders; } } public void Load(int customerID) { // Load only the customer from DB } } As we can see the orders are loaded from the database only if really
needed. This pattern is applicable to all objects where the creation of
some instance variables cost either in terms of time or memory and they
may never be used. This pattern is used as basis of a large numer of
aother patterns, such as Singleton. The sample above isn't thread safe but I will talk about it another timeTheo
.NET Việt Nam Số lượt đọc:
253
-
Cập nhật lần cuối:
07/04/2008 10:35:51 PM | So sánh syntax c# and vb.net 23/06/2008 04:12' PM Sự khác biệt giữa VB.NET và C# được thể hiện ở ba phần chính: cú pháp,
các nguyên lý hướng đối tượng, và môi trường phát triển tích hợp Visual
Studio .NET. Sự khác biệt về cú pháp liên quan đến các câu lệnh và các
yếu tố ngôn ngữ. Sự khác biệt về hướng đối tượng thì khó thấy hơn, liên
quan đến bản hiện thực và tính năng giữa hai ngôn ngữ. Sự khác biệt về
môi trường phát triển tích hợp bao gồm những thiết lập biên dịch (là
những đặc tính được thiết lập thông qua IDE, có tác dụng khác nhau tùy
vào ngôn ngữ). Cũng có sự khác biệt thứ tư liên quan đến các tính năng
ngôn ngữ có trong ngôn ngữ này nhưng không có trong ngôn ngữ kia.
Sử dụng Singleton Pattern trong C#18/06/2008 02:10' AMMẫu thiết kế Singletonlà
một trong những mẫu thông dụng và được sử dụng rộng rãi nhất trong kĩ
thuật lập trình. Về nguyên tắc, một Singleton là một lớp chỉ cho phép
một đối tượng tương ứng được tạo, và tất nhiên nó cũng phải có một
public member để những đối tượng khác có thể truy xuất instance Singletonnày Lợi ích của .NET Framework 06/06/2008 06:58' PM Mọi chuyện ... 'trên trời dưới đất' mà ta muốn thực hiện trên nền
Windows, tỷ như data access, windowing, nối mạng hay ngay cả mọi công
dụng đa dạng của Win32 API (Application Programming Interface) đều có
thể vận dụng dễ dàng qua kiểu mẫu đối tượng (objects) rất đơn giản
(simple object model). Làm việc với các file Tài Nguyên Resource 06/06/2008 01:22' PM Trong
một ứng dụng, có rất nhiều tài nguyên như: các file hình ảnh, âm nhạc,
văn bản... Vậy bạn có biết Làm thế nào để lưu tất cả những tài nguyên
đó vào cùng một file không? Và sẽ làm như thế nào? Bài viết này, mình
sẽ giới thiệu cho các bạn cách làm việc với các file tài nguyên
Resource: lưu trữ và đọc các thông tin đó.
Kiểu dữ liệu Hashtable 10/05/2008 01:47' AM
Bài viết giúp bạn hiểu về kiểu dữ liệu HastTable trong nền tảng .NET (ngôn ngữ C#). Tạo các ứng dụng .Net trên Linux và Mac OS X 25/04/2008 03:30' PM Bài
báo này được trích dẫn từ cuốn Windows Developer Power Tools của James
Avery và Jim Holmes, theo giấy phép của O’Reilly Media Inc. Visual Studio 2008 - New Features21/04/2008 12:46' AMVisual Studio 2008 code name "Orcas" Beta 2
has just hit the road and, since it is Beta 2, this means Visual Studio
2008 is feature complete and is ready for RTM. Below, we would find a
brief introduction of some of the new features introduced with VS 2008
and .NET 3.5 Beta 2. Bài đã đăng: Ngôn ngữ C# với kiến trúc .Net 02/04/2008 12:42' AM Các ngôn ngữ trong bộ .net (C#, VB.NET, J#, C++.NET) luôn đồng hành với "bộ khung .NET". Tất cả các mã được biên dịch đều chạy trên nền .net Serialization trong .NET 02/04/2008 12:17' AM Serialization
là một quá trình chuyển đối tượng (object) sang một hình thức khác, để
sử dụng khi lưu trữ hoặc chuyển dữ liệu qua mạng. Bài viết này đề cập
đến việc chuyển đối tượng sang dạng XML.
Khởi tạo ứng dụng Linux đầu tiên với Visual Studio .NET 2003 IDE 05/06/2005 08:12' PM Bài viết "Create your first Linux application with the Visual Studio .NET IDE in 10 minutes" của hãng Mainsoft giới thiệu tổng quan chung về công nghệ Grasshopper giúp cho các ứng dụng .NET có thể chạy trên Unix/Linux. .NET Framework - Tâm điểm của Nền tảng .NET (phần II) 02/04/2005 02:28' PM Như chúng ta đã biết, phần cốt lõi nhất trong Nền tảng .NET là .NET Framework. Đây là thành phần quan trọng nhất cho các nhà thiết kế muốn xây dựng những giải pháp cụ thể cho các ứng dụng và các dịch vụ Web XML. Trong bài viết phần I, chúng tôi đã giới thiệu với bạn những đặc trưng, những ưu điểm của .NET Framework trong việc phát triển các ứng dụng và các dịch vụ Web bên cạnh công nghệ dựa trên nền tảng Java mà chúng ta đã quen biết. Phần hai này sẽ cho giới thiệu chi tiết hơn về cơ sở hạ tầng .NET Framework. .NET Framework - Tâm điểm của Nền tảng .NET (phần I) 02/04/2005 01:25' PM Như chúng ta đã biết, phần cốt lõi nhất trong Nền tảng .NET là .NET Framework. Đây là thành phần quan trọng nhất cho các nhà thiết kế muốn xây dựng những giải pháp cụ thể cho các ứng dụng và các dịch vụ Web XML. Phần đầu bài báo nêu những đặc trưng, những ưu điểm của .NET Framework trong việc phát triển các ứng dụng và các dịch vụ Web bên cạnh công nghệ dựa trên nền tảng Java mà chúng ta đã quen biết. Phần hai nghiên cứu chi tiết cơ sở hạ tầng .NET Framework Nền tảng .NET (.NET Framework)02/04/2005 12:01' PM .NET là nền tảng của Microsoft cho các dịch vụ Web XML, là thế hệ phần mềm kế tiếp kết nối thế giới thông tin, các thiết bị và tất cả mọi người trong một thể thống nhất. Nền tảng .NET cho phép tạo ra và sử dụng các ứng dụng, các quá trình và các Website dựa trên XML như những dịch vụ chia xẻ, kết nối thông tin và hoạt động cùng nhau, trên bất cứ nền tảng hay thiết bị thông minh nào... Tổng quan về Microsoft .NET02/04/2005 11:23' AM Sự khởi xướng ý tưởng .NET là một bước đột phá mới của Microsoft. Nó bao hàm nhiều quan niệm hiện hữu và những triết lý. Microsoft đưa ra công nghệ mà nó cho phép ý tưởng .NET trở thành hiện thực. Bài báo này sẽ cung cấp cho bạn một cái nhìn tổng thể về .NET, nó rất có ý nghĩa cho thế giới CNTT và nhất là cho Internet. |