SlideShare a Scribd company logo
2 /1 551/, / 3
,./ , 8
2 A LI H H C B H EHH B JI EI H C B
0 L J
,BE B /
1
■ 2
■ .
– .
■ .
■ .
■ ..
■ .
– . &
–
■
■
■
■
3 3
WHY
8 8
■ ( ( 8
■
■ )
■
, , . . ,
, 9 9
■
■ 1
– 0
■ &
■
■
■
–
– & 1
■ 1
■ &
■ . 1
■
■ Model
– Fetch, Store, Update, …etc.
– Access Remote or Local data
■ View
– XML(Android)/Xib or StoryBoard(iOS)
■ Controller
– Activity/Fragment(Android) or UIViewController(iOS)
– UI reactions(listeners, properties, …etc.)
– Data Processing
■ 2
■ 1 2 2
–
■ &
■
■
■
–
– & 1 2 2
■ 1
■ &
■ . 1
■
■ Model
– Fetch, Store, Update, …etc.
– Access Remote or Local data
■ View
– Activity/Fragment(Android) or UIViewController(iOS)
– XML(Android)/Xib or StoryBoard(iOS)
■ Presenter
– Prepare the data for showing
– A mediator between the View and the Model
4
■
■ 1 4 4
–
■ &
■
■
■
–
– & 41 4 4
■ 4 1 4
■ &
■ . 1
■
■ Model
– Fetch, Store, Update, …etc.
– Access Remote or Local data
■ View
– Activity/Fragment(Android) or UIViewController(iOS)
– XML(Android)/Xib or StoryBoard(iOS)
■ ViewModel
– A mediator between the View and the Model
– Databinding to View components
6
■ 6
■ 1 6 6
–
■ &
■
■
■
–
– & 1 6
■ 6 1
■ &
■ . 1
■
■ View
– Activity/Fragment(Android) or UIViewController(iOS)
– XML(Android)/Xib or StoryBoard(iOS)
■ Interactor
– Business logic for accessing the data from Model
■ Presenter
– Bridge between Interactors and Views
– Prepare the data for showing
■ Entity
– Basic model objects
■ Router
– Navigation logic
■
■ 1
–
■ &
■
■
■
–
– & 1
■ 1
■ &
■ . 881
■
■ Presentation
– MVX, VIPER pattern
■ Domain
– Business logic
■ Data
– Repository Pattern
Streaming
Request
Interactor Interactor
Uncle Bob Clean Architecture
■ 2
■ 2 2
– 0
■ &
■
■
■
–
– & 2 2
■
■ &
■ .
■
■ Repository
– Local
■ Disk
■ File
■ Memory
■ Shared Preferences
– Cloud
■ Remote Server
■ Firebase
& &
2
Distribution Testability Easy of use
MVC
MVP
MVVM
VIPER
Clean
Architecture1. Distribution
2. Testability
3. Easy of Use
Developing cost Complexity Number of Class
5C
■ A 5 E5CE CA - - . - - . > 5 C E E C
■ - E B> E > 5 C E E C E A E A B> 5E
■ A 5>> 5C E 5 A BE A EA E A E BACE5 E
■ C I A , 2,, B A A C E EA AA 5 5C E E C
Application architecture pattern

More Related Content

Similar to Application architecture pattern

10x improvement-mysql-100419105218-phpapp02
10x improvement-mysql-100419105218-phpapp0210x improvement-mysql-100419105218-phpapp02
10x improvement-mysql-100419105218-phpapp02
promethius
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
Kevin Webber
 
Mobile Security Assessment: 101
Mobile Security Assessment: 101Mobile Security Assessment: 101
Mobile Security Assessment: 101
wireharbor
 
Introduction to Android Development and Security
Introduction to Android Development and SecurityIntroduction to Android Development and Security
Introduction to Android Development and Security
Kelwin Yang
 
ADRecon - Detection CHCON 2018
ADRecon - Detection CHCON 2018ADRecon - Detection CHCON 2018
ADRecon - Detection CHCON 2018
prashant3535
 
みゆっき☆Think#4 「こんどはiPhoneに触ってみるよ!」
みゆっき☆Think#4 「こんどはiPhoneに触ってみるよ!」みゆっき☆Think#4 「こんどはiPhoneに触ってみるよ!」
みゆっき☆Think#4 「こんどはiPhoneに触ってみるよ!」
techtalkdwango
 
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalKandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_final
NAVER D2
 
Circonus: Design failures - A Case Study
Circonus: Design failures - A Case StudyCirconus: Design failures - A Case Study
Circonus: Design failures - A Case Study
Heinrich Hartmann
 
Cheap tricks for startups
Cheap tricks for startupsCheap tricks for startups
Cheap tricks for startups
Simon Willison
 
Web Performance Part 4 "Client-side performance"
Web Performance Part 4  "Client-side performance"Web Performance Part 4  "Client-side performance"
Web Performance Part 4 "Client-side performance"
Binary Studio
 
E-GEN iCAN
E-GEN iCANE-GEN iCAN
2 Security Architecture+Design
2 Security Architecture+Design2 Security Architecture+Design
2 Security Architecture+Design
Alfred Ouyang
 
SplunkLive! Salt Lake City June 2013 - Ancestry.com
SplunkLive! Salt Lake City June 2013 - Ancestry.comSplunkLive! Salt Lake City June 2013 - Ancestry.com
SplunkLive! Salt Lake City June 2013 - Ancestry.com
Splunk
 
Stay clear of the bugs: Troubleshooting Applications in Microsoft Azure
Stay clear of the bugs: Troubleshooting Applications in Microsoft AzureStay clear of the bugs: Troubleshooting Applications in Microsoft Azure
Stay clear of the bugs: Troubleshooting Applications in Microsoft Azure
HARMAN Services
 
Drinking our own Champagne: How Woot, an Amazon subsidiary, uses AWS (ARC212)...
Drinking our own Champagne: How Woot, an Amazon subsidiary, uses AWS (ARC212)...Drinking our own Champagne: How Woot, an Amazon subsidiary, uses AWS (ARC212)...
Drinking our own Champagne: How Woot, an Amazon subsidiary, uses AWS (ARC212)...
Amazon Web Services
 
Schema registries and Snowplow
Schema registries and SnowplowSchema registries and Snowplow
Schema registries and Snowplow
miiker
 
Android2.x/3.x/4.x向けアプリ開発で気付いたこと
Android2.x/3.x/4.x向けアプリ開発で気付いたことAndroid2.x/3.x/4.x向けアプリ開発で気付いたこと
Android2.x/3.x/4.x向けアプリ開発で気付いたこと
Kenichi Kambara
 
Xavier Lacot: Abstracting Databases Access in Titanium Mobile
Xavier Lacot: Abstracting Databases Access in Titanium MobileXavier Lacot: Abstracting Databases Access in Titanium Mobile
Xavier Lacot: Abstracting Databases Access in Titanium Mobile
Axway Appcelerator
 
Scaling your Application for Growth using Automation (CPN209) | AWS re:Invent...
Scaling your Application for Growth using Automation (CPN209) | AWS re:Invent...Scaling your Application for Growth using Automation (CPN209) | AWS re:Invent...
Scaling your Application for Growth using Automation (CPN209) | AWS re:Invent...
Amazon Web Services
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Demi Ben-Ari
 

Similar to Application architecture pattern (20)

10x improvement-mysql-100419105218-phpapp02
10x improvement-mysql-100419105218-phpapp0210x improvement-mysql-100419105218-phpapp02
10x improvement-mysql-100419105218-phpapp02
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
 
Mobile Security Assessment: 101
Mobile Security Assessment: 101Mobile Security Assessment: 101
Mobile Security Assessment: 101
 
Introduction to Android Development and Security
Introduction to Android Development and SecurityIntroduction to Android Development and Security
Introduction to Android Development and Security
 
ADRecon - Detection CHCON 2018
ADRecon - Detection CHCON 2018ADRecon - Detection CHCON 2018
ADRecon - Detection CHCON 2018
 
みゆっき☆Think#4 「こんどはiPhoneに触ってみるよ!」
みゆっき☆Think#4 「こんどはiPhoneに触ってみるよ!」みゆっき☆Think#4 「こんどはiPhoneに触ってみるよ!」
みゆっき☆Think#4 「こんどはiPhoneに触ってみるよ!」
 
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalKandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_final
 
Circonus: Design failures - A Case Study
Circonus: Design failures - A Case StudyCirconus: Design failures - A Case Study
Circonus: Design failures - A Case Study
 
Cheap tricks for startups
Cheap tricks for startupsCheap tricks for startups
Cheap tricks for startups
 
Web Performance Part 4 "Client-side performance"
Web Performance Part 4  "Client-side performance"Web Performance Part 4  "Client-side performance"
Web Performance Part 4 "Client-side performance"
 
E-GEN iCAN
E-GEN iCANE-GEN iCAN
E-GEN iCAN
 
2 Security Architecture+Design
2 Security Architecture+Design2 Security Architecture+Design
2 Security Architecture+Design
 
SplunkLive! Salt Lake City June 2013 - Ancestry.com
SplunkLive! Salt Lake City June 2013 - Ancestry.comSplunkLive! Salt Lake City June 2013 - Ancestry.com
SplunkLive! Salt Lake City June 2013 - Ancestry.com
 
Stay clear of the bugs: Troubleshooting Applications in Microsoft Azure
Stay clear of the bugs: Troubleshooting Applications in Microsoft AzureStay clear of the bugs: Troubleshooting Applications in Microsoft Azure
Stay clear of the bugs: Troubleshooting Applications in Microsoft Azure
 
Drinking our own Champagne: How Woot, an Amazon subsidiary, uses AWS (ARC212)...
Drinking our own Champagne: How Woot, an Amazon subsidiary, uses AWS (ARC212)...Drinking our own Champagne: How Woot, an Amazon subsidiary, uses AWS (ARC212)...
Drinking our own Champagne: How Woot, an Amazon subsidiary, uses AWS (ARC212)...
 
Schema registries and Snowplow
Schema registries and SnowplowSchema registries and Snowplow
Schema registries and Snowplow
 
Android2.x/3.x/4.x向けアプリ開発で気付いたこと
Android2.x/3.x/4.x向けアプリ開発で気付いたことAndroid2.x/3.x/4.x向けアプリ開発で気付いたこと
Android2.x/3.x/4.x向けアプリ開発で気付いたこと
 
Xavier Lacot: Abstracting Databases Access in Titanium Mobile
Xavier Lacot: Abstracting Databases Access in Titanium MobileXavier Lacot: Abstracting Databases Access in Titanium Mobile
Xavier Lacot: Abstracting Databases Access in Titanium Mobile
 
Scaling your Application for Growth using Automation (CPN209) | AWS re:Invent...
Scaling your Application for Growth using Automation (CPN209) | AWS re:Invent...Scaling your Application for Growth using Automation (CPN209) | AWS re:Invent...
Scaling your Application for Growth using Automation (CPN209) | AWS re:Invent...
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
 

More from Jieyi Wu

Design pattern advanced ii with testing
Design pattern advanced ii with  testingDesign pattern advanced ii with  testing
Design pattern advanced ii with testing
Jieyi Wu
 
Design pattern advanced i
Design pattern advanced iDesign pattern advanced i
Design pattern advanced i
Jieyi Wu
 
Dependency injection
Dependency injectionDependency injection
Dependency injection
Jieyi Wu
 
Reactive X introduction part1
Reactive X introduction part1Reactive X introduction part1
Reactive X introduction part1
Jieyi Wu
 
Karitoke's supported technology
Karitoke's supported technologyKaritoke's supported technology
Karitoke's supported technology
Jieyi Wu
 
Design pattern - part 3
Design pattern - part 3Design pattern - part 3
Design pattern - part 3
Jieyi Wu
 
Design pattern part 2 - structural pattern
Design pattern part 2 - structural patternDesign pattern part 2 - structural pattern
Design pattern part 2 - structural pattern
Jieyi Wu
 
Design pattern - part 1
Design pattern - part 1Design pattern - part 1
Design pattern - part 1
Jieyi Wu
 
Nice to meet Kotlin
Nice to meet KotlinNice to meet Kotlin
Nice to meet Kotlin
Jieyi Wu
 
Object-oriented programming
Object-oriented programmingObject-oriented programming
Object-oriented programming
Jieyi Wu
 

More from Jieyi Wu (10)

Design pattern advanced ii with testing
Design pattern advanced ii with  testingDesign pattern advanced ii with  testing
Design pattern advanced ii with testing
 
Design pattern advanced i
Design pattern advanced iDesign pattern advanced i
Design pattern advanced i
 
Dependency injection
Dependency injectionDependency injection
Dependency injection
 
Reactive X introduction part1
Reactive X introduction part1Reactive X introduction part1
Reactive X introduction part1
 
Karitoke's supported technology
Karitoke's supported technologyKaritoke's supported technology
Karitoke's supported technology
 
Design pattern - part 3
Design pattern - part 3Design pattern - part 3
Design pattern - part 3
 
Design pattern part 2 - structural pattern
Design pattern part 2 - structural patternDesign pattern part 2 - structural pattern
Design pattern part 2 - structural pattern
 
Design pattern - part 1
Design pattern - part 1Design pattern - part 1
Design pattern - part 1
 
Nice to meet Kotlin
Nice to meet KotlinNice to meet Kotlin
Nice to meet Kotlin
 
Object-oriented programming
Object-oriented programmingObject-oriented programming
Object-oriented programming
 

Recently uploaded

The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
OnePlan Solutions
 
Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
Massimo Artizzu
 
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and MoreManyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
narinav14
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
widenerjobeyrl638
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
Envertis Software Solutions
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
kalichargn70th171
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
Jhone kinadey
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
kalichargn70th171
 

Recently uploaded (20)

The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
 
Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
 
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and MoreManyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
 

Application architecture pattern

  • 1. 2 /1 551/, / 3 ,./ , 8 2 A LI H H C B H EHH B JI EI H C B 0 L J ,BE B / 1
  • 2. ■ 2 ■ . – . ■ . ■ . ■ .. ■ . – . & – ■ ■ ■ ■
  • 3. 3 3
  • 4. WHY
  • 5.
  • 6.
  • 7.
  • 8. 8 8 ■ ( ( 8 ■ ■ ) ■
  • 9. , , . . , , 9 9
  • 10. ■ ■ 1 – 0 ■ & ■ ■ ■ – – & 1 ■ 1 ■ & ■ . 1 ■
  • 11. ■ Model – Fetch, Store, Update, …etc. – Access Remote or Local data ■ View – XML(Android)/Xib or StoryBoard(iOS) ■ Controller – Activity/Fragment(Android) or UIViewController(iOS) – UI reactions(listeners, properties, …etc.) – Data Processing
  • 12. ■ 2 ■ 1 2 2 – ■ & ■ ■ ■ – – & 1 2 2 ■ 1 ■ & ■ . 1 ■
  • 13. ■ Model – Fetch, Store, Update, …etc. – Access Remote or Local data ■ View – Activity/Fragment(Android) or UIViewController(iOS) – XML(Android)/Xib or StoryBoard(iOS) ■ Presenter – Prepare the data for showing – A mediator between the View and the Model
  • 14. 4 ■ ■ 1 4 4 – ■ & ■ ■ ■ – – & 41 4 4 ■ 4 1 4 ■ & ■ . 1 ■
  • 15. ■ Model – Fetch, Store, Update, …etc. – Access Remote or Local data ■ View – Activity/Fragment(Android) or UIViewController(iOS) – XML(Android)/Xib or StoryBoard(iOS) ■ ViewModel – A mediator between the View and the Model – Databinding to View components
  • 16. 6 ■ 6 ■ 1 6 6 – ■ & ■ ■ ■ – – & 1 6 ■ 6 1 ■ & ■ . 1 ■
  • 17. ■ View – Activity/Fragment(Android) or UIViewController(iOS) – XML(Android)/Xib or StoryBoard(iOS) ■ Interactor – Business logic for accessing the data from Model ■ Presenter – Bridge between Interactors and Views – Prepare the data for showing ■ Entity – Basic model objects ■ Router – Navigation logic
  • 18. ■ ■ 1 – ■ & ■ ■ ■ – – & 1 ■ 1 ■ & ■ . 881 ■
  • 19. ■ Presentation – MVX, VIPER pattern ■ Domain – Business logic ■ Data – Repository Pattern Streaming Request Interactor Interactor Uncle Bob Clean Architecture
  • 20. ■ 2 ■ 2 2 – 0 ■ & ■ ■ ■ – – & 2 2 ■ ■ & ■ . ■
  • 21. ■ Repository – Local ■ Disk ■ File ■ Memory ■ Shared Preferences – Cloud ■ Remote Server ■ Firebase
  • 22. & &
  • 23. 2 Distribution Testability Easy of use MVC MVP MVVM VIPER Clean Architecture1. Distribution 2. Testability 3. Easy of Use Developing cost Complexity Number of Class
  • 24.
  • 25. 5C ■ A 5 E5CE CA - - . - - . > 5 C E E C ■ - E B> E > 5 C E E C E A E A B> 5E ■ A 5>> 5C E 5 A BE A EA E A E BACE5 E ■ C I A , 2,, B A A C E EA AA 5 5C E E C