Java: внутри файла MS Excel 2007. Часть четвёртая В публикуемой сегодня части статьи заканчивается описание процедур загрузки электронной таблицы и начинается описание самого интересного - каким образом получить данные, хранящиеся в ячейках таблицы |
|
|
|
Java: внутри файла MS Excel 2007. Часть третья В предлагаемой вниманию читателя третьей части статьи о структуре файла электронной таблицы Microsoft Excel формата 2007 речь идёт о коде Java, "разархивирующем" файловый поток и формирующем объекты, с которыми предстоит взаимодействовать при дальнейшей обработке данных электронной таблицы |
|
|
|
Java: внутри файла MS Excel 2007. Часть вторая В настоящем материале автор постарается систематизировать свои знания о том, как устроено хранение данных электронной таблицы, и презентовать небольшую Java-библиотеку, предоставляющую возможность чтения данных и заполнения файла электронной таблицы Microsoft Excel |
|
|
|
|
Главная Библиотека Шаблоны и примерыПаттерны. Часть 5. Factory
Часть 1. Фасад >>>
Часть 2. Фасад для абстрактного документа >>>
Часть 3. Фасад для документа >>>
Часть 4. Итератор >>>
Часть 5. Factory
Денис Самойлович
Теперь хочу поделиться несколько необычной интерпретацией понятия Factory в лотусовых приложениях.
Общий смысл Factory сводится к генерации объекта определенного класса в зависимости от ключа. Предположим, в базе есть набор почтовых шаблонов. Мы обрабатываем коллекцию документов, в зависимости от типа документа берем шаблон, формируем по этому шаблону письмо и отправляем его.
Какие возможны варианты решения этой задачи:
1) самый плохой: для каждого документа лукапить его шаблон.
2) чуть получше: загрузить сразу все шаблоны в список и брать шаблон из списка по ключу.
3) идеальный: нарисовать некий Factory, который лукапит шаблон и кладет его во внутренний кэш. В следующий раз, при запросе этого же шаблона, шаблон будет браться из кэша.
Public Class PatternsFactory As Something
' SML
'
meDB As NotesDatabase
meLookup As NotesView
meCache List As Pattern
Sub New(sourceDB As NotesDatabase), Something()
' SML
'
Set meDB = sourceDB
Set meLookup = meDB.GetView(VIEW_PATTERNS_LOOKUP)
call meLookup.Refresh
meLookup.AutoUpdate = False
End Sub ' New
Function ProducePattern(key$) As Pattern
' SML
'
try:
On Error Goto catch
Set ProducePattern = Nothing
' get key suitable for search
Dim lookupKey$
lookupKey$ = meTransformKey(key$)
If lookupKey$ = "" Then Exit Function
' check internal cache
If Iselement(meCache(lookupKey$)) Then
Set ProducePattern = meCache(lookupKey$)
Exit Function
End If
' lookup document by key
Dim doc As NotesDocument
Set doc = meLookup.GetDocumentByKey(lookupKey$)
' generate pattern
Dim pattern As Pattern
If doc Is Nothing Then
Set pattern = Nothing
Else
Set pattern = New Pattern(doc)
End If
' update internal cache
Set meCache(lookupKey$) = pattern
' return pattern
Set ProducePattern = pattern
Exit Function
catch:
Resume finally
finally:
End Function ' ProducePattern
Private Function meTransformKey(key$) As String
' SML
'
meTransformKey = key$
End Function ' meTransformKey
Sub ClearCache
' SML
'
Erase meCache
End Sub ' ClearCache
End Class ' PatternsFactory
|
Часть 1. Фасад >>>
Часть 2. Фасад для абстрактного документа >>>
Часть 3. Фасад для документа >>>
Часть 4. Итератор >>>
Часть 5. Factory
Читайте на Notesnet.ru
О пользе ООП при проектировании систем на платформе Lotus Notes/Domino >>>
Пример UI элемента на основе паттерна MVC >>>
Использование паттерна MVC в модальных диалоговых окнах >>>
|
Опубликовано — 08/31/2009 |
| |
|
|
Последнее на форуме |
 |
|
 |
|
|