Slide 29
Slide 29 text
Dependency Inversion
func main() {
str, err := PrependHello(os.Stdin)
if err != nil {
log.Fatal(err)
}
fmt.Println(str)
}
// os.Fileという具体的な型に依存している
func PrependHello(f *os.File) (string, error) {
var buf bytes.Buffer
if _, err := io.Copy(&buf, f); err != nil {
return "", err
}
return "hello " + buf.String(), nil
}
● Keyboard入力に対して
helloを追加するコード
● Keyboard以外にはどう対
応する?
● PrependHelloをどうテスト
するか?