Instanceੜ
final Serval serval = new Serval();
Kaban kaban = new Kaban();
val serval = Serval()
var kaban = Kaban()
Slide 14
Slide 14 text
Instanceੜ
final Serval serval = new Serval();
Kaban kaban = new Kaban();
val serval = Serval()
var kaban = Kaban()
Slide 15
Slide 15 text
Instanceੜ
final Serval serval = new Serval();
Kaban kaban = new Kaban();
val serval = Serval()
var kaban = Kaban()
Slide 16
Slide 16 text
Instanceੜ
final Serval serval = new Serval();
Kaban kaban = new Kaban();
val serval = Serval()
var kaban = Kaban()
Slide 17
Slide 17 text
Class
public class JapariBus {
private final Trailer trailer;
private final Container container;
public JapariBus(Trailer trailer, Container container) {
this.trailer = trailer;
this.container = container;
}
}
class JapariBus(private val trailer: Trailer,
private val container: Container)
Έ͔͡ʔ͍
Slide 18
Slide 18 text
Class
public class JapariBus {
private final Trailer trailer;
private final Container container;
public JapariBus(Trailer trailer, Container container) {
this.trailer = trailer;
this.container = container;
}
}
class JapariBus(private val trailer: Trailer,
private val container: Container)
Έ͔͡ʔ͍
Slide 19
Slide 19 text
Class
public class JapariBus {
private final Trailer trailer;
private final Container container;
public JapariBus(Trailer trailer, Container container) {
this.trailer = trailer;
this.container = container;
}
}
class JapariBus(private val trailer: Trailer,
private val container: Container)
Έ͔͡ʔ͍
After
Dao
Database API
Client
Repository
UseCase
Presenter
Activity / Fragment
Service
Slide 69
Slide 69 text
After
Dao Client
Repository
UseCase
Presenter
Activity / Fragment
Retrofit͕࣮͢ΔInterface
Database API
Service
Slide 70
Slide 70 text
After
Dao Client
Repository
UseCase
Presenter
Activity / Fragment
Serverͱͷσʔλૹड৴
Database API
Service
Slide 71
Slide 71 text
After
Dao Client
Repository
UseCase
Presenter
Activity / Fragment
DBͱͷσʔλૹड৴
Database API
Service
Slide 72
Slide 72 text
After
Dao
Repository
UseCase
Presenter
Activity / Fragment
Client
σʔλऔಘ/อଘ
Database API
Service
Slide 73
Slide 73 text
After
Dao
Repository
UseCase
Presenter
Activity / Fragment
Client
ϏδωεϩδοΫ
Database API
Service
Slide 74
Slide 74 text
After
Dao
Repository
UseCase
Presenter
Activity / Fragment
Client
ϏδωεϩδοΫͷར༻
Activity/Fragmentͷૢ࡞
Database API
Service
Slide 75
Slide 75 text
After
Dao
Repository
UseCase
Presenter
Activity / Fragment
Client
Viewͷૢ࡞
Activityґଘͷػೳͷૢ࡞
Database API
Service
Slide 76
Slide 76 text
After
Dao Client
Repository
UseCase
Presenter
Activity / Fragment
Observable
Observable
Observable
Observable
Observable
Observable
Database API
Service
Slide 77
Slide 77 text
Matching
Slide 78
Slide 78 text
Client
Dao Client
Repository
UseCase
Presenter
Activity / Fragment
Database API
Service
Client
class UserClient(private val service: UserService) {
fun fetchMatchingUsers(offset: Int):Observable> {
return service.fetchMatchingUsers(offset)
.map { response -> UserConverter.convert(response) }
}
}
Slide 81
Slide 81 text
Client
class UserClient(private val service: UserService) {
fun fetchMatchingUsers(offset: Int):Observable> {
return service.fetchMatchingUsers(offset)
.map { response -> UserConverter.convert(response) }
}
}
Slide 82
Slide 82 text
Client
class UserClient(private val service: UserService) {
fun fetchMatchingUsers(offset: Int):Observable> {
return service.fetchMatchingUsers(offset)
.map { response -> UserConverter.convert(response) }
}
}
Slide 83
Slide 83 text
Client Test
val userService = mock()
val client = UserClient(userService)
userService.invoked.thenReturn(...)
client.fetchMathingUsers().test().run {
...
}
Slide 84
Slide 84 text
Dao
Dao Client
Repository
UseCase
Presenter
Activity / Fragment
Database API
Service
Slide 85
Slide 85 text
‣ OrmaDatabaseΛར༻ͯ͠Database͔Βσʔλͷऔಘ
Λߦ͏
‣ OrmaDatabaseΛར༻ͯ͠DatabaseσʔλΛอଘ͢
Δ
Dao
Slide 86
Slide 86 text
Dao
class UserDao(private val orma: OrmaDatabase) {
fun insert(users: List) {
orma.transactionSync {
orma.prepareInsertIntoUser(OnConflict.REPLACE)
.executeAll(contributors)
}
}
fun findAll(): Observable> {
return orma.selectFromUser()
.executeAsObservable()
.toList()
}
}
Slide 87
Slide 87 text
Dao
class UserDao(private val orma: OrmaDatabase) {
fun insert(users: List) {
orma.transactionSync {
orma.prepareInsertIntoUser(OnConflict.REPLACE)
.executeAll(contributors)
}
}
fun findAll(): Observable> {
return orma.selectFromUser()
.executeAsObservable()
.toList()
}
}
Slide 88
Slide 88 text
Dao
class UserDao(private val orma: OrmaDatabase) {
fun insert(users: List) {
orma.transactionSync {
orma.prepareInsertIntoUser(OnConflict.REPLACE)
.executeAll(contributors)
}
}
fun findAll(): Observable> {
return orma.selectFromUser()
.executeAsObservable()
.toList()
}
}
Slide 89
Slide 89 text
Dao
class UserDao(private val orma: OrmaDatabase) {
fun insert(users: List) {
orma.transactionSync {
orma.prepareInsertIntoUser(OnConflict.REPLACE)
.executeAll(contributors)
}
}
fun findAll(): Observable> {
return orma.selectFromUser()
.executeAsObservable()
.toList()
}
}
Slide 90
Slide 90 text
Dao Test
val dao = UserDao(orma)
dao.insert(...)
orma.selectFromUser()
.executeAsObservable()
.toList()
.test()
.run {
...
}
orma.insertIntoUser()…
dao.findAll().test().run {
...
}
Slide 91
Slide 91 text
Repository
Dao
Repository
UseCase
Presenter
Activity / Fragment
Client
Database API
Service