From c885d0189a5e41b997f5df3e5e5b70beb667c45c Mon Sep 17 00:00:00 2001 From: xiaowei <403828237@qq.com> Date: Wed, 19 Jan 2022 16:36:17 +0800 Subject: [PATCH] =?UTF-8?q?add:=20interface=20=E7=AE=80=E5=8D=95=E7=9A=84?= =?UTF-8?q?=E7=94=A8=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- interface/example1/sensor/sensor.go | 12 ++++++++ interface/example1/sensor/sensorimpl/ftp.go | 30 ++++++++++++++++++++ interface/example1/sensor/sensorimpl/rtsp.go | 30 ++++++++++++++++++++ interface/main.go | 13 +++++++++ 4 files changed, 85 insertions(+) create mode 100644 interface/example1/sensor/sensor.go create mode 100644 interface/example1/sensor/sensorimpl/ftp.go create mode 100644 interface/example1/sensor/sensorimpl/rtsp.go create mode 100644 interface/main.go 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) +}