usecaseのpublic/private
code:go
usecase層での具体例
1. インターフェース → 大文字(Publisher)
type Publisher interface { // 大文字
Create(...)
}
理由:handlerから使うから
2. 実装構造体 → 小文字(publisher)
type publisher struct { // 小文字
publisherQuery query.Publisher
}
理由:外部から直接作らせたくないから(NewPublisher経由で作る)
3. New関数 → 大文字(NewPublisher)
func NewPublisher(...) Publisher { // 大文字
return &publisher{...}
}
理由:外部(handler等)から呼び出すから
4. input/output構造体 → 大文字(CreatePublisher)
type CreatePublisher struct { // 大文字
Name string
}
理由:handlerから参照するから