Slide 19
Slide 19 text
ґଘੑͷٯస(DIP)
```go:application/policy.go
package application
type Policy struct {
// DIP. infraʹґଘͤͣ͞ʹdomainͷinterfaceʹґଘͤ͞Δ
policyRepo domain.PolicyRepository
}
func (p *Policy) Get(id string) (*model.Policy, error) {
// ...
res, err := p.policyRepo.Get(id)
if err != nil {
return nil, err
}
return res, nil
}
```
```go:domain/repository.go
package domain
// application͔Βݟ͑ΔॴʹinterfaceΛஔ͘
type PolicyRepository interface {
Get(id string) (*model.Policy, error)
}
```