VB.NET навсегда
Главная | | Регистрация | Вход
Пятница
17.05.2024
08:06
Приветствую Вас Гость | RSS
Главная » 2009 » Сентябрь » 17 » Инкапсуляция в VB.NET
16:03
Инкапсуляция в VB.NET
Объект должен скрывать детали своей реализации, открывая "внешнему миру" лишь методы и свойства. Инкапсуляция (encapsulation) представляет собой доступность свойств и
методов объекта," в то время как сам объект фактически скрыт от внешнего мира. Другими словами, объект подобен "черному ящику", т.е. те разработчики, которые с ним работают,
могут даже не знать о том, что в действительности происходит внутри данного объекта. Инкапсуляция позволяет разработчикам создавать объекты, которые могут быть из-
менены без какого-либо воздействия на использующий их клиентский код. Самое главное в том, что интерфейс (interface) объекта, т.е. набор его доступных свойств и методов,
не меняется даже при изменении внутренней реализации объекта. Visual Basic поддерживает инкапсуляцию начиная с версии 4.0.
Рассмотрим два простых примера. В листингах 3.5 и 3.6 представлены две реализации класса Person, выполненные двумя различными способами.

ЛИСТИНГ 3.5. Первый способ реализации класса Person

Public Class Person
Private m_sFirstName as String
Private m_sLastName as String
Public Property FirstNamef) as String
Get
FirstName = m_sFirstName
End Get
Set(ByVal Value as String)
m_sFirstName = Value
End Set
End Property
Public Property LastNameO as String
Get
LastName = m_sLastName
End Get
Set(ByVal Value as String)
m_sLastName = Value
End Set
End Property
Readonly Property FullNameO as String
Get
FullName = m_sLastName & ", " & m_sFirstName
End Get
End Property
End Class

Листинг 3.6. Второй способ реализации класса Person

Public Class Person
Private m_sFirstName as String
Private m_sLastName as String
Private m_sFullName as String
Public Property FirstName() as String
Get
FirstName = m_sFirstName
End Get
Set (ByVal Value as String)
m_sFirstName = Value
m_sFullName = m_sLastName & ", " S m_sFirstName
End~Set
End Property
Public Property LastNameO as String
Get
LastName = m_sLastName
End Get
Set(ByVal Value as String)
m_sLastName = Value
m_sFullName = m_sLastName & ", " & m_sFirstName
End Set
End Property
Readonly Property FullNameO as String
Get
FullName = m_sFirstName
End Get
End Property
End Class

Приведенные примеры иллюстрируют инкапсуляцию процессов внутри класса. Несмотря на различия во внутренней реализации классов, внешний интерфейс не изменяется. Именно это и является целью инкапсуляции: позволить разработчику прозрачно использовать различные реализации одного и того же объекта.
Просмотров: 1429 | Добавил: admin | Рейтинг: 0.0/0
Всего комментариев: 1
1 B-Studio Chief Director  
0
_ 'Public Property FirstNamef) as String'

Это что ещё за небрежность?!! Если, чёрт возьми, вы копипастите с PDF-книжек, то извольте и за правильностью следить!!


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Меню
Поиск
Наш опрос
Оцените мой сайт
Всего ответов: 8
Copyright MyCorp © 2024
Создать бесплатный сайт с uCoz