diff --git a/interface/example1/sensor/sensor.go b/interface/example1/sensor/sensor.go new file mode 100644 index 0000000..9d8da97 --- /dev/null +++ b/interface/example1/sensor/sensor.go @@ -0,0 +1,12 @@ +package sensor + +type Sensor interface { + Add() + Delete() + Update() + Search() +} + +func AddSensor(s Sensor) { + s.Add() +} diff --git a/interface/example1/sensor/sensorimpl/ftp.go b/interface/example1/sensor/sensorimpl/ftp.go new file mode 100644 index 0000000..5e05e26 --- /dev/null +++ b/interface/example1/sensor/sensorimpl/ftp.go @@ -0,0 +1,30 @@ +package sensorimpl + +import ( + "fmt" + "golanglearn/interface/example1/sensor" +) + +type Ftp struct { + Name string +} + +func (f *Ftp) Add() { + fmt.Println("ftp sensor", f.Name) +} + +func (f *Ftp) Delete() { + panic("implement me") +} + +func (f *Ftp) Update() { + panic("implement me") +} + +func (f *Ftp) Search() { + panic("implement me") +} + +func NewFtp(name string) sensor.Sensor { + return &Ftp{Name: name} +} diff --git a/interface/example1/sensor/sensorimpl/rtsp.go b/interface/example1/sensor/sensorimpl/rtsp.go new file mode 100644 index 0000000..0200bf0 --- /dev/null +++ b/interface/example1/sensor/sensorimpl/rtsp.go @@ -0,0 +1,30 @@ +package sensorimpl + +import ( + "fmt" + "golanglearn/interface/example1/sensor" +) + +type Rtsp struct { + Name string +} + +func (r *Rtsp) Add() { + fmt.Println("add sensor", r.Name) +} + +func (r *Rtsp) Delete() { + panic("implement me") +} + +func (r *Rtsp) Update() { + panic("implement me") +} + +func (r *Rtsp) Search() { + panic("implement me") +} + +func NewRtsp(name string) sensor.Sensor { + return &Rtsp{Name: name} +} diff --git a/interface/main.go b/interface/main.go new file mode 100644 index 0000000..233afff --- /dev/null +++ b/interface/main.go @@ -0,0 +1,13 @@ +package main + +import ( + "golanglearn/interface/example1/sensor" + "golanglearn/interface/example1/sensor/sensorimpl" +) + +func main() { + rtsp1 := sensorimpl.NewRtsp("xxx") + sensor.AddSensor(rtsp1) + ftp1 := sensorimpl.NewFtp("ftp") + sensor.AddSensor(ftp1) +}