visitor

package
v0.0.0-...-a7c7adb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 3, 2023 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Compressor

type Compressor struct{}

Compressor 实现压缩功能

func (*Compressor) Visit

func (c *Compressor) Visit(r IResourceFile) error

Visit 实现访问者模式方法 我们可以发现由于没有函数重载,我们只能通过断言来根据不同的类型调用不同函数 但是我们即使不采用访问者模式,我们其实也是可以这么操作的 并且由于采用了类型断言,所以如果需要操作的对象比较多的话,这个函数其实也会膨胀的比较厉害 后续可以考虑按照命名约定使用 generate 自动生成代码 或者是使用反射简化

func (*Compressor) VisitPDFFile

func (c *Compressor) VisitPDFFile(f *PdfFile) error

VisitPDFFile VisitPDFFile

func (*Compressor) VisitPPTFile

func (c *Compressor) VisitPPTFile(f *PPTFile) error

VisitPPTFile VisitPPTFile

type IResourceFile

type IResourceFile interface {
	Accept(Visitor) error
}

IResourceFile IResourceFile

func NewResourceFile

func NewResourceFile(filepath string) (IResourceFile, error)

NewResourceFile NewResourceFile

type PPTFile

type PPTFile struct {
	// contains filtered or unexported fields
}

PPTFile PPTFile

func (*PPTFile) Accept

func (f *PPTFile) Accept(visitor Visitor) error

Accept Accept

type PdfFile

type PdfFile struct {
	// contains filtered or unexported fields
}

PdfFile PdfFile

func (*PdfFile) Accept

func (f *PdfFile) Accept(visitor Visitor) error

Accept Accept

type Visitor

type Visitor interface {
	Visit(IResourceFile) error
}

Visitor 访问者

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL