mirror of
https://github.com/zhwei820/learn.lianglianglee.com.git
synced 2025-11-15 21:53:50 +08:00
u
This commit is contained in:
@@ -25,13 +25,7 @@
|
||||
<meta name="generator" content="Hexo 4.2.0">
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<div class="book-container">
|
||||
|
||||
<div class="book-sidebar">
|
||||
@@ -55,373 +49,190 @@
|
||||
<li><a href="/" class="current-tab">首页</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<ul class="uncollapsible">
|
||||
|
||||
<li><a href="../">上一级</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<ul class="uncollapsible">
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/00 生活中的设计模式:启程之前,请不要错过我.md.html">00 生活中的设计模式:启程之前,请不要错过我.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/01 监听模式:坑爹的热水器.md.html">01 监听模式:坑爹的热水器.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
<a class="current-tab" href="/专栏/白话设计模式 28 讲(完)/02 适配模式:身高不够鞋来凑.md.html">02 适配模式:身高不够鞋来凑.md.html</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/03 状态模式:人与水的三态.md.html">03 状态模式:人与水的三态.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/04 单例模式:你是我生命的唯一.md.html">04 单例模式:你是我生命的唯一.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/05 职责模式:我的假条去哪了.md.html">05 职责模式:我的假条去哪了.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/06 中介模式:找房子问中介.md.html">06 中介模式:找房子问中介.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/07 代理模式:帮我拿一下快递.md.html">07 代理模式:帮我拿一下快递.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/08 装饰模式:你想怎么穿就怎么穿.md.html">08 装饰模式:你想怎么穿就怎么穿.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/09 工厂模式:你要拿铁还是摩卡.md.html">09 工厂模式:你要拿铁还是摩卡.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/10 迭代模式:下一个就是你了.md.html">10 迭代模式:下一个就是你了.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/11 组合模式:自己组装电脑.md.html">11 组合模式:自己组装电脑.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/12 构建模式:想要车还是庄园.md.html">12 构建模式:想要车还是庄园.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/13 克隆模式:给你一个分身术.md.html">13 克隆模式:给你一个分身术.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/14 策略模式:怎么来不重要,人到就行.md.html">14 策略模式:怎么来不重要,人到就行.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/15 命令模式:大闸蟹,走起!.md.html">15 命令模式:大闸蟹,走起!.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/16 备忘模式:好记性不如烂笔头.md.html">16 备忘模式:好记性不如烂笔头.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/17 享元模式:颜料很贵必须充分利用.md.html">17 享元模式:颜料很贵必须充分利用.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/18 外观模式:学妹别慌,学长帮你.md.html">18 外观模式:学妹别慌,学长帮你.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/19 访问模式:一千个读者一千个哈姆雷特.md.html">19 访问模式:一千个读者一千个哈姆雷特.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/20 生活中的设计模式:与经典设计模式的不解渊源.md.html">20 生活中的设计模式:与经典设计模式的不解渊源.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/21 生活中的设计模式:那些未完待续的设计模式.md.html">21 生活中的设计模式:那些未完待续的设计模式.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/22 深入解读过滤器模式:制作一杯鲜纯细腻的豆浆.md.html">22 深入解读过滤器模式:制作一杯鲜纯细腻的豆浆.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/23 深入解读对象池技术:共享让生活更便捷.md.html">23 深入解读对象池技术:共享让生活更便捷.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/24 深入解读回调机制:把你技能亮出来.md.html">24 深入解读回调机制:把你技能亮出来.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/25 谈谈我对设计模式的理解.md.html">25 谈谈我对设计模式的理解.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/26 谈谈我对设计原则的思考.md.html">26 谈谈我对设计原则的思考.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="/专栏/白话设计模式 28 讲(完)/27 谈谈我对项目重构的看法.md.html">27 谈谈我对项目重构的看法.md.html</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
|
||||
|
||||
<div class="sidebar-toggle-inner"></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
function add_inner() {
|
||||
@@ -431,9 +242,6 @@
|
||||
inner.classList.add('show')
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function remove_inner() {
|
||||
|
||||
let inner = document.querySelector('.sidebar-toggle-inner')
|
||||
@@ -441,9 +249,6 @@
|
||||
inner.classList.remove('show')
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function sidebar_toggle() {
|
||||
|
||||
let sidebar_toggle = document.querySelector('.sidebar-toggle')
|
||||
@@ -473,9 +278,6 @@
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function open_sidebar() {
|
||||
|
||||
let sidebar = document.querySelector('.book-sidebar')
|
||||
@@ -499,13 +301,7 @@ function hide_canvas() {
|
||||
overlay.classList.remove('show')
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<div class="off-canvas-content">
|
||||
|
||||
<div class="columns">
|
||||
@@ -601,91 +397,49 @@ function hide_canvas() {
|
||||
<pre><code class="language-python">class IHightPerson:
|
||||
|
||||
"接口类,提供空实现的方法,由子类去实现"
|
||||
|
||||
|
||||
|
||||
def getName(self):
|
||||
|
||||
"获取姓名"
|
||||
|
||||
pass
|
||||
|
||||
|
||||
|
||||
def getHeight(self):
|
||||
|
||||
"获取身高"
|
||||
|
||||
pass
|
||||
|
||||
|
||||
|
||||
class HighPerson(IHightPerson):
|
||||
|
||||
"个高的人"
|
||||
|
||||
|
||||
|
||||
def __init__(self, name):
|
||||
|
||||
self.__name = name
|
||||
|
||||
|
||||
|
||||
def getName(self):
|
||||
|
||||
return self.__name
|
||||
|
||||
|
||||
|
||||
def getHeight(self):
|
||||
|
||||
return 170
|
||||
|
||||
|
||||
|
||||
class ShortPerson:
|
||||
|
||||
"个矮的人"
|
||||
|
||||
|
||||
|
||||
def __init__(self, name):
|
||||
|
||||
self.__name = name
|
||||
|
||||
|
||||
|
||||
def getName(self):
|
||||
|
||||
return self.__name
|
||||
|
||||
|
||||
|
||||
def getRealHeight(self):
|
||||
|
||||
return 160
|
||||
|
||||
|
||||
|
||||
def getShoesHeight(self):
|
||||
|
||||
return 6
|
||||
|
||||
|
||||
|
||||
class DecoratePerson(ShortPerson, IHightPerson):
|
||||
|
||||
"有高跟鞋搭配的人"
|
||||
|
||||
|
||||
|
||||
def getHeight(self):
|
||||
|
||||
return super().getRealHeight() + super().getShoesHeight()
|
||||
|
||||
|
||||
|
||||
</code></pre>
|
||||
|
||||
<p>测试代码:</p>
|
||||
@@ -703,9 +457,6 @@ class DecoratePerson(ShortPerson, IHightPerson):
|
||||
"""
|
||||
|
||||
return person.getHeight() >= 165;
|
||||
|
||||
|
||||
|
||||
def testPerson():
|
||||
|
||||
lira = HighPerson("Lira")
|
||||
@@ -721,9 +472,6 @@ def testPerson():
|
||||
print(demi.getName() + "身高" + str(demi.getHeight()) + "在高跟鞋的适配下,你身高不输高圆圆,气质不输范冰冰!")
|
||||
|
||||
print("是否适合做接待员:", "符合" if canPlayReceptionist(lira) else "不符合")
|
||||
|
||||
|
||||
|
||||
</code></pre>
|
||||
|
||||
<p>输出结果:</p>
|
||||
@@ -731,15 +479,9 @@ def testPerson():
|
||||
<pre><code>Lira身高170,完美如你,天生的美女!
|
||||
|
||||
是否适合做接待员: 符合
|
||||
|
||||
|
||||
|
||||
Demi身高166在高跟鞋的适配下,你身高不输高圆圆,气质不输范冰冰!
|
||||
|
||||
是否适合做接待员: 符合
|
||||
|
||||
|
||||
|
||||
</code></pre>
|
||||
|
||||
<h3>从剧情中思考适配器模式</h3>
|
||||
@@ -873,21 +615,12 @@ Demi身高166在高跟鞋的适配下,你身高不输高圆圆,气质不输
|
||||
def __init__(self, pageNum):
|
||||
|
||||
self.__pageNum = pageNum
|
||||
|
||||
|
||||
|
||||
def getContent(self):
|
||||
|
||||
return "第 " + str(self.__pageNum) + " 页的内容..."
|
||||
|
||||
|
||||
|
||||
class Catalogue:
|
||||
|
||||
"目录结构"
|
||||
|
||||
|
||||
|
||||
def __init__(self, title):
|
||||
|
||||
self.__title = title
|
||||
@@ -897,15 +630,9 @@ class Catalogue:
|
||||
self.setChapter("第一章")
|
||||
|
||||
self.setChapter("第二章")
|
||||
|
||||
|
||||
|
||||
def setChapter(self, title):
|
||||
|
||||
self.__chapters.append(title)
|
||||
|
||||
|
||||
|
||||
def showInfo(self):
|
||||
|
||||
print("标题:" + self.__title)
|
||||
@@ -913,45 +640,24 @@ class Catalogue:
|
||||
for chapter in self.__chapters:
|
||||
|
||||
print(chapter)
|
||||
|
||||
|
||||
|
||||
class IBook:
|
||||
|
||||
"电子书文档的接口类"
|
||||
|
||||
|
||||
|
||||
def parseFile(self, filePath):
|
||||
|
||||
pass
|
||||
|
||||
|
||||
|
||||
def getCatalogue(self):
|
||||
|
||||
pass
|
||||
|
||||
|
||||
|
||||
def getPageCount(self):
|
||||
|
||||
pass
|
||||
|
||||
|
||||
|
||||
def getPage(self, pageNum):
|
||||
|
||||
pass
|
||||
|
||||
|
||||
|
||||
class TxtBook(IBook):
|
||||
|
||||
"TXT解析类"
|
||||
|
||||
|
||||
|
||||
def parseFile(self, filePath):
|
||||
|
||||
# 模拟文档的解析
|
||||
@@ -961,33 +667,18 @@ class TxtBook(IBook):
|
||||
self.__pageCount = 500
|
||||
|
||||
return True
|
||||
|
||||
|
||||
|
||||
def getCatalogue(self):
|
||||
|
||||
return Catalogue("TXT电子书")
|
||||
|
||||
|
||||
|
||||
def getPageCount(self):
|
||||
|
||||
return self.__pageCount
|
||||
|
||||
|
||||
|
||||
def getPage(self, pageNum):
|
||||
|
||||
return Page(pageNum)
|
||||
|
||||
|
||||
|
||||
class EpubBook(IBook):
|
||||
|
||||
"TXT解析类"
|
||||
|
||||
|
||||
|
||||
def parseFile(self, filePath):
|
||||
|
||||
# 模拟文档的解析
|
||||
@@ -997,65 +688,35 @@ class EpubBook(IBook):
|
||||
self.__pageCount = 800
|
||||
|
||||
return True
|
||||
|
||||
|
||||
|
||||
def getCatalogue(self):
|
||||
|
||||
return Catalogue("Epub电子书")
|
||||
|
||||
|
||||
|
||||
def getPageCount(self):
|
||||
|
||||
return self.__pageCount
|
||||
|
||||
|
||||
|
||||
def getPage(self, pageNum):
|
||||
|
||||
return Page(pageNum)
|
||||
|
||||
|
||||
|
||||
class Outline:
|
||||
|
||||
"第三方PDF解析库的目录类"
|
||||
|
||||
pass
|
||||
|
||||
|
||||
|
||||
class PdfPage:
|
||||
|
||||
"PDF页"
|
||||
|
||||
|
||||
|
||||
def __init__(self, pageNum):
|
||||
|
||||
self.__pageNum = pageNum
|
||||
|
||||
|
||||
|
||||
def getPageNum(self):
|
||||
|
||||
return self.__pageNum
|
||||
|
||||
|
||||
|
||||
class ThirdPdf:
|
||||
|
||||
"第三方PDF解析库"
|
||||
|
||||
|
||||
|
||||
def __init__(self):
|
||||
|
||||
self.__pageSize = 0
|
||||
|
||||
|
||||
|
||||
def open(self, filePath):
|
||||
|
||||
print("第三方解析PDF文件:" + filePath)
|
||||
@@ -1063,33 +724,18 @@ class ThirdPdf:
|
||||
self.__pageSize = 1000
|
||||
|
||||
return True
|
||||
|
||||
|
||||
|
||||
def getOutline(self):
|
||||
|
||||
return Outline()
|
||||
|
||||
|
||||
|
||||
def pageSize(self):
|
||||
|
||||
return self.__pageSize
|
||||
|
||||
|
||||
|
||||
def page(self, index):
|
||||
|
||||
return PdfPage(index)
|
||||
|
||||
|
||||
|
||||
class PdfAdapterBook(ThirdPdf, IBook):
|
||||
|
||||
"TXT解析类"
|
||||
|
||||
|
||||
|
||||
def parseFile(self, filePath):
|
||||
|
||||
# 模拟文档的解析
|
||||
@@ -1101,9 +747,6 @@ class PdfAdapterBook(ThirdPdf, IBook):
|
||||
print(filePath + "文件解析成功")
|
||||
|
||||
return rtn
|
||||
|
||||
|
||||
|
||||
def getCatalogue(self):
|
||||
|
||||
outline = super().getOutline()
|
||||
@@ -1111,15 +754,9 @@ class PdfAdapterBook(ThirdPdf, IBook):
|
||||
print("将Outline结构的目录转换成Catalogue结构的目录")
|
||||
|
||||
return Catalogue("PDF电子书")
|
||||
|
||||
|
||||
|
||||
def getPageCount(self):
|
||||
|
||||
return super().pageSize()
|
||||
|
||||
|
||||
|
||||
def getPage(self, pageNum):
|
||||
|
||||
page = self.page(pageNum)
|
||||
@@ -1127,21 +764,12 @@ class PdfAdapterBook(ThirdPdf, IBook):
|
||||
print("将PdfPage的面对象转换成Page的对象")
|
||||
|
||||
return Page(page.getPageNum())
|
||||
|
||||
|
||||
|
||||
# 导入os库
|
||||
|
||||
import os
|
||||
|
||||
|
||||
|
||||
class Reader:
|
||||
|
||||
"阅读器"
|
||||
|
||||
|
||||
|
||||
def __init__(self, name):
|
||||
|
||||
self.__name = name
|
||||
@@ -1151,9 +779,6 @@ class Reader:
|
||||
self.__curBook = None
|
||||
|
||||
self.__curPageNum = -1
|
||||
|
||||
|
||||
|
||||
def __initBook(self, filePath):
|
||||
|
||||
self.__filePath = filePath
|
||||
@@ -1175,9 +800,6 @@ class Reader:
|
||||
else:
|
||||
|
||||
self.__curBook = None
|
||||
|
||||
|
||||
|
||||
def openFile(self, filePath):
|
||||
|
||||
self.__initBook(filePath)
|
||||
@@ -1193,45 +815,27 @@ class Reader:
|
||||
return rtn
|
||||
|
||||
return False
|
||||
|
||||
|
||||
|
||||
def closeFile(self):
|
||||
|
||||
print("关闭 " + self.__filePath + " 文件")
|
||||
|
||||
return True
|
||||
|
||||
|
||||
|
||||
def showCatalogue(self):
|
||||
|
||||
catalogue = self.__curBook.getCatalogue()
|
||||
|
||||
catalogue.showInfo()
|
||||
|
||||
|
||||
|
||||
def prePage(self):
|
||||
|
||||
return self.gotoPage(self.__curPageNum - 1)
|
||||
|
||||
|
||||
|
||||
def nextPage(self):
|
||||
|
||||
return self.gotoPage(self.__curPageNum + 1)
|
||||
|
||||
|
||||
|
||||
def gotoPage(self, pageNum):
|
||||
|
||||
if(pageNum < 1 or pageNum > self.__curBook.getPageCount()):
|
||||
|
||||
return None
|
||||
|
||||
|
||||
|
||||
self.__curPageNum = pageNum
|
||||
|
||||
print("显示第" + str(self.__curPageNum) + "页")
|
||||
@@ -1241,9 +845,6 @@ class Reader:
|
||||
page.getContent()
|
||||
|
||||
return page
|
||||
|
||||
|
||||
|
||||
</code></pre>
|
||||
|
||||
<p>测试代码:</p>
|
||||
@@ -1265,9 +866,6 @@ class Reader:
|
||||
reader.closeFile()
|
||||
|
||||
print()
|
||||
|
||||
|
||||
|
||||
if (not reader.openFile("平凡的世界.epub")):
|
||||
|
||||
return
|
||||
@@ -1281,9 +879,6 @@ class Reader:
|
||||
reader.closeFile()
|
||||
|
||||
print()
|
||||
|
||||
|
||||
|
||||
if (not reader.openFile("平凡的世界.pdf")):
|
||||
|
||||
return
|
||||
@@ -1295,9 +890,6 @@ class Reader:
|
||||
reader.nextPage()
|
||||
|
||||
reader.closeFile()
|
||||
|
||||
|
||||
|
||||
</code></pre>
|
||||
|
||||
<p><strong>输出结果:</strong></p>
|
||||
@@ -1315,9 +907,6 @@ class Reader:
|
||||
显示第2页
|
||||
|
||||
关闭 平凡的世界.txt 文件
|
||||
|
||||
|
||||
|
||||
平凡的世界.epub 文件解析成功
|
||||
|
||||
标题:Epub电子书
|
||||
@@ -1331,9 +920,6 @@ class Reader:
|
||||
显示第6页
|
||||
|
||||
关闭 平凡的世界.epub 文件
|
||||
|
||||
|
||||
|
||||
第三方解析PDF文件:平凡的世界.pdf
|
||||
|
||||
平凡的世界.pdf文件解析成功
|
||||
@@ -1355,9 +941,6 @@ class Reader:
|
||||
将PdfPage的面对象转换成Page的对象
|
||||
|
||||
关闭 平凡的世界.pdf 文件
|
||||
|
||||
|
||||
|
||||
</code></pre>
|
||||
|
||||
<h3>应用场景</h3>
|
||||
@@ -1389,9 +972,6 @@ class Reader:
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -1399,9 +979,6 @@ class Reader:
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
|
||||
|
||||
</div>
|
||||
@@ -1417,17 +994,11 @@ class Reader:
|
||||
<script>
|
||||
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
|
||||
|
||||
function gtag() {
|
||||
|
||||
dataLayer.push(arguments);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-NPSEEVD756');
|
||||
@@ -1453,9 +1024,6 @@ class Reader:
|
||||
setCookie("lastPath", path)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function setCookie(cname, cvalue) {
|
||||
|
||||
var d = new Date();
|
||||
@@ -1467,9 +1035,6 @@ class Reader:
|
||||
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function getCookie(cname) {
|
||||
|
||||
var name = cname + "=";
|
||||
@@ -1487,12 +1052,6 @@ class Reader:
|
||||
return "";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</html>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user