Partial class – từ khóa Partial trong VB.NET 2005


Partisal class

Một trong những cải tiến trong .NET 2.0— có mặt trong VB.NET 2005 và C# 2.0 là hỗ trợ cho partial classes. Tóm gọn, thì partial classes nghĩa là class do chúng ta định nghĩa có thể được tách ra thành nhiều file vật lý. Về mặt logic, của chương trình của chúng ta không thay đổi gì khi được biên dịch: trong quá trình biên dịch, nó chỉ group các file partial classes (file class thành phần) và đối xử như với 1 thực thể duy nhất.

Nắm được từ khóa này giúp ích cho người bắt đầu nghiên cứu smart client , CAB, application block, kiến trúc n-tier, kiến trúc 3-tier.

Một trong những ứng dụng của partial classes là nó cho phép tách biệt business logic và the user interface. Sử dụng partial classes, UI code có thể được ẩn đối với developer, người thường không quan tâm đến nó. Partial classes còn làm cho việc debug dễ dàng hơn.

Chúng ta khảo sát cách sử dụng partial classes trong Visual Studio 2005.

Sử dụng Partial Classes

Listing 1 chứa 2 class định nghĩa trong VB.NET, trong khi class thứ 2 định nghĩa với từ khóa partial. Listing 1 tương đương với Listing 2 về mặt chức năng.

Listing 1

'---File1.vb---
Public Class Class1
    Public Sub method1()
 
    End Sub
End Class
 
File2.vb
Partial Public Class Class1
    Public Sub method2()
 
    End Sub
End Class
 

Listing 2

'---File1.vb---
Public Class Class1
    Public Sub method1()
 
    End Sub
    Public Sub method2()
 
    End Sub
End Class

Như vậy khi nào nên sử dụng partial classes?

Sau đây là một số lý do khi sử dụng partial classes:

  1. Chúng cho phép những lập trình viên trong 1 nhóm cùng làm việc trên những phần khác nhau của 1 class mà không cần chia xẻ chung 1 file.

2. Lý do quan trọng nhất để dùng partial class là tách phần business logic ra khỏi designer-generated code. Ví dụ, code phát sinh giao diện bởi Visual Studio 2005 tách biệt với business logic.


Khảo sát Partial Classes

Ví dụ sau đây định nghĩa class MyClass1. Các properties được đặt trong 1 file, MyClass1.Properties.vb.

 
'---MyClass1.Properties.vb
Public Class MyClass1
    Private pX As Integer
    Private py As Integer
    Property x() As Integer
        Get
            Return pX
        End Get
        Set(ByVal value As Integer)
            pX = value
        End Set
    End Property
    Property y() As Integer
        Get
            Return py
        End Get
        Set(ByVal value As Integer)
            py = value
        End Set
    End Property
End Class 

File thứ 2, MyClass1.Methods.vb, cài đặt cho MyClass1 với từ khóa Partial

'---MyClass1.Methods.vb
'---must have the Partial keyword
Partial Public Class MyClass1
    Private py As Integer
 
    Public Sub method1()
        ' implementation here
    End Sub
 
    Public Sub method3(ByVal x As Integer, ByVal y As Integer)
        ' implementation here
    End Sub
 
    Public Sub method2()
        ' implementation here
    End Sub
End Class 

Trong khi partial classes cho phép chúng ta trộn nhiều file để thành 1 class, chúng không cho phép trộn nhiều ngôn ngữ lập trình.

Ngòai ra, từ khóa “partial” còn được sử dụng cho structures và interfaces.

Nếu class cài đặt cho nhiều interfaces, thì sử dụng partial classes để cài đặt cho mỗi interface là một cách làm thuận lợi. Tất cả các class đều có thể cài đặt với từ khóa partial.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s