Skip to content

20210316从net.Conn总结包的共有 私有设计模式

zqy edited this page Mar 16, 2021 · 2 revisions

首先对比下net.Conn与我目前所设计的github.com/ziyouzy/river-node.NodeAbstract两者间的区别:

type Conn interface {
    Read(b []byte) (n int, err error)
    Write(b []byte) (n int, err error)
    Close() error
    LocalAddr() Addr
    RemoteAddr() Addr
    SetDeadline(t time.Time) error
    SetReadDeadline(t time.Time) error
    SetWriteDeadline(t time.Time) error
}

type NodeAbstract interface {
    Name() string
    Construct(config Config) error
    Run()
    ProactiveDestruct()
    /*reactiveDestruct()*/
}

区别在于我的NodeAbstract中有个小写的reactiveDestruct()
目前的结论是,如果某个包中的接口内有个小写的方法,那么这个接口就等同于私有接口了,只能在这个包内部被实现,以及发挥其自身的价值
而包外,无论怎么努力也都无法实现这个接口
或者说,type NodeAbstract interface的公有化已经无意义了,他等同于type nodeAbstract interface

Clone this wiki locally