Разработка мобильного приложения для развивающего образовательного центра



Pdf көрінісі
бет17/26
Дата29.05.2022
өлшемі1,62 Mb.
#35872
түріРеферат
1   ...   13   14   15   16   17   18   19   20   ...   26
public
class
ViewFactory
{
public
static
final
int
BACK_CONTENT_VIEW
=
0
,
MAIN_VIEW
=
1
,
NEWS_VIEW
=
2
,
NEWS_ITEM_VIEW
=
3
,
DIRECTIONS_VIEW
=
4
,
DIRECTIONS_ITEM_VIEW
=
5
,
CONTACTS_VIEW
=
6
,
ABOUT_US
=
7
;
private
ViewFactory
()
{
}
public
static
BaseView 
create
(
int
pViewId
)
{
switch
(
pViewId
)
{
case
BACK_CONTENT_VIEW:
return
new
BackContentActivity
();
case
MAIN_VIEW:
return
new
MainActivity
();
case
NEWS_VIEW:


54 
return
new
NewsFragment
();
case
NEWS_ITEM_VIEW:
return
new
NewsItemFragment
();
case
DIRECTIONS_VIEW:
return
new
DirectionsFragment
();
case
DIRECTIONS_ITEM_VIEW:
return
new
DirectionItemFragment
();
case
CONTACTS_VIEW:
return
new
ContactFragment
();
case
ABOUT_US_VIEW:
return
new
AboutFragment
();
default
:
throw
new
IllegalArgumentException
(
"Can't find a view"
);
}
}
}
Код 3. Фабрика представлений 
Данная фабрика является реализацией паттерна фабричный метод[30], 
который позволяет нам получить готовый экземпляр вида без явного 
инстанцирования объекта, что позволяет скрывать способ его создания. Так 
как классы вида у нас реализую один интерфейс BaseView мы можем 
создавать и возвращать их без каких либо проблем, потому что программист 
не будет знать с каким именно типом объекта он работает, что делает 
программу более гибкой, легко модифицируемой и расширяемой.
Приступим к рассмотрению интерфейса BaseView который 
представляет возможность работать универсально с классами представлений: 
public
interface
BaseView
{
void
show
(
@NonNull
final
Context pContext
,
@Nullable
final
Bundle 
pArguments
);
void
show
(
@NonNull
final
Context pContext
,
@Nullable
final
Bundle 
pArguments
,
int
pRequestCode
);
void
show
();
void
hide
();
void
close
();
}
Код 4. Интерфейс BaseView 


55 
Данный интерфейс является важной частью приложения, благодаря 
которому приложение можно будет легко расширять, добавляя новые 
представления без больших усилий, и временных затрат, что является 
важным для разработки мобильных приложений. Его реализую многие 
представления приложения, но реализация находятся в основном в базовых 
классах данных представлений. Как мы могли заметить BaseActivity не 
реализует данный интерфейс, и для этого есть некоторые причины, например 
стартовое окно приложения, вызывает система, и сами мы его запускать не 
будем, так зачем нам тогда реализовывать данный интерфейс? 
Класс представления SplashActivity наследует от BaseActivity, но не 
реализует интерфейс BaseView, так как в данной ситуации это не нужно. 


Достарыңызбен бөлісу:
1   ...   13   14   15   16   17   18   19   20   ...   26




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет