# 所有程序包的分层结构

程序包分层结构:

- org.knf.util,
- tenet.anticheat,
- tenet.core,
- tenet.node,
- tenet.protocol,
- tenet.protocol.datalink,
- tenet.protocol.datalink.SEther,
- tenet.protocol.interrupt,
- tenet.protocol.network,
- tenet.protocol.physics,
- tenet.protocol.statecontrol,
- tenet.protocol.transport,
- tenet.util,
- tenet.util.pattern,
- tenet.util.pattern.cbc,
- tenet.util.pattern.serviceclient

## 类分层结构

- java.lang.Object
  - org.knf.util.AssertLib
  - tenet.util.ByteLib
  - tenet.util.pattern.cbc.Command (implements java.lang.Comparable<T>)
    - tenet.protocol.statecontrol.DisableCommand
    - tenet.protocol.statecontrol.EnableCommand
    - tenet.core.SystemStop
  - tenet.protocol.interrupt.InterruptObject (implements tenet.util.pattern.cbc.ICaller, tenet.util.pattern.cbc.IReceiver)
    - tenet.protocol.physics.Link (implements tenet.protocol.IProtocol, tenet.util.pattern.cbc.IReceiver, tenet.util.pattern.serviceclient.IRegistryableService<ClientIdentity>, tenet.protocol.statecontrol.IStateSetable)
    - tenet.protocol.datalink.SEther.SimpleEthernetDatalink (implements tenet.protocol.datalink.IDataLinkLayer, tenet.util.pattern.serviceclient.IRegistryableService<ClientIdentity>)
  - tenet.protocol.interrupt.InterruptParam (implements tenet.util.pattern.IParam)
    - tenet.protocol.physics.DataArrivalInterruptParam
    - tenet.protocol.physics.DataSendedInterruptParam
    - tenet.protocol.datalink.FrameParamStruct
    - tenet.protocol.datalink.IDataLinkLayer.ReceiveParam
    - tenet.protocol.datalink.IDataLinkLayer.TransmitParam
    - tenet.protocol.datalink.MediumAddress
    - tenet.protocol.interrupt.TimeoutInterrupt
  - tenet.protocol.interrupt.SignalParam (implements tenet.util.pattern.IParam)
  - tenet.core.Simulator (implements tenet.util.pattern.cbc.IInvoker, tenet.util.pattern.cbc.IReceiver)
  - tenet.core.SystemPause (implements tenet.util.pattern.IParam)

## 接口分层结构

- tenet.util.pattern.cbc.ICaller
- tenet.anticheat.ICallWatcher
- tenet.util.pattern.serviceclient.IClient<UID>
  - tenet.protocol.datalink.IDataLinkLayer (并 extends tenet.protocol.IProtocol, tenet.protocol.statecontrol.IStateSetable)
  - tenet.protocol.network.INetworkLayer (并 extends tenet.protocol.IProtocol)
  - tenet.protocol.transport.ITransportLayer (并 extends tenet.protocol.IProtocol)
- tenet.protocol.datalink.SEther.IErrorGenerator
- tenet.util.pattern.cbc.IInvoker
- tenet.util.pattern.IParam
- tenet.protocol.IProtocol
  - tenet.protocol.datalink.IDataLinkLayer (并 extends tenet.util.pattern.serviceclient.IClient<UID>, tenet.protocol.statecontrol.IStateSetable)
  - tenet.protocol.network.INetworkLayer (并 extends tenet.util.pattern.serviceclient.IClient<UID>)
  - tenet.protocol.transport.ITransportLayer (并 extends tenet.util.pattern.serviceclient.IClient<UID>)
- tenet.util.pattern.cbc.IReceiver
- tenet.util.pattern.serviceclient.IService<ClientIdentity>
  - tenet.node.INode (并 extends tenet.util.pattern.serviceclient.IRegistryableService<ClientIdentity>, tenet.protocol.statecontrol.IStateSetable)
  - tenet.util.pattern.serviceclient.IRegistryableService<ClientIdentity>
    - tenet.node.INode (并 extends tenet.protocol.statecontrol.IStateSetable)
- tenet.protocol.statecontrol.IStateSetable
  - tenet.protocol.datalink.IDataLinkLayer (并 extends tenet.util.pattern.serviceclient.IClient<UID>, tenet.protocol.IProtocol)
  - tenet.node.INode (并 extends tenet.util.pattern.serviceclient.IRegistryableService<ClientIdentity>)

## 枚举分层结构

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - tenet.protocol.datalink.IDataLinkLayer.ReceiveStatus
    - tenet.protocol.datalink.IDataLinkLayer.TransmitStatus