This commit is contained in:
周伟
2022-05-11 19:04:14 +08:00
parent 9440ac7291
commit d9c5ffd627
826 changed files with 0 additions and 481675 deletions

View File

@@ -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 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 class="current-tab" 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">
@@ -587,9 +383,6 @@ function hide_canvas() {
<pre><code class="language-python">class HouseInfo:
&quot;房源信息&quot;
def __init__(self, area, price, hasWindow, bathroom, kitchen, address, owner):
self.__area = area
@@ -605,21 +398,12 @@ function hide_canvas() {
self.__address = address
self.__owner = owner
def getAddress(self):
return self.__address
def getOwnerName(self):
return self.__owner.getName()
def showInfo(self, isShowOwner = True):
print(&quot;面积:&quot; + str(self.__area) + &quot;平米&quot;,
@@ -635,35 +419,20 @@ function hide_canvas() {
&quot;地址:&quot; + self.getAddress(),
&quot;房东:&quot; + self.getOwnerName() if isShowOwner else &quot;&quot;)
class HousingAgency:
&quot;房屋中介&quot;
def __init__(self, name):
self.__houseInfos = []
self.__name = name
def getName(self):
return self.__name
def addHouseInfo(self, houseInfo):
self.__houseInfos.append(houseInfo)
def removeHouseInfo(self, houseInfo):
for info in self.__houseInfos:
@@ -671,17 +440,11 @@ class HousingAgency:
if(info == houseInfo):
self.__houseInfos.remove(info)
def getSearchCondition(self, description):
&quot;这里有一个将用户描述信息转换成搜索条件的逻辑。(为节省篇幅这里原样返回描述)&quot;
return description
def getMatchInfos(self, searchCondition):
&quot;根据房源信息的各个属性查找最匹配的信息。(为节省篇幅这里略去匹配的过程,全部输出)&quot;
@@ -693,9 +456,6 @@ class HousingAgency:
info.showInfo(False)
return self.__houseInfos
def signContract(self, houseInfo, time):
&quot;与房东签订协议&quot;
@@ -703,23 +463,14 @@ class HousingAgency:
print(self.getName(), &quot;与房东&quot;, houseInfo.getOwnerName(), &quot;签订&quot;, houseInfo.getAddress(),
&quot;的房子的的租赁合同,租期&quot;, time, &quot;年。 合同期内&quot;, self.getName(), &quot;有权对其进行使用和转租!&quot;)
def signContracts(self, time):
for info in self.__houseInfos :
self.signContract(info, time)
class HouseOwner:
&quot;房东&quot;
def __init__(self, name, address):
self.__name = name
@@ -727,27 +478,15 @@ class HouseOwner:
self.__address = address
self.__houseInfo = None
def getName(self):
return self.__name
def getAddress(self):
return self.__address
def setHouseInfo(self, area, price, hasWindow, bathroom, kitchen):
self.__houseInfo = HouseInfo(area, price, hasWindow, bathroom, kitchen, self.getAddress(), self)
def publishHouseInfo(self, agency):
agency.addHouseInfo(self.__houseInfo)
@@ -755,27 +494,15 @@ class HouseOwner:
print(self.getName() + &quot;&quot;, agency.getName(), &quot;发布房源出租信息:&quot;)
self.__houseInfo.showInfo()
class Custom:
&quot;房客,租房人&quot;
def __init__(self, name):
self.__name = name
def getName(self):
return self.__name
def findHouse(self, description, agency):
print(&quot;我是&quot; + self.getName() + &quot;, 我想要找一个\&quot;&quot; + description + &quot;\&quot;的房子&quot;)
@@ -783,9 +510,6 @@ class Custom:
print()
return agency.getMatchInfos(agency.getSearchCondition(description))
def seeHouse(self, houseInfos):
&quot;去看房,选择最使用的房子。(这里省略看房的过程)&quot;
@@ -793,9 +517,6 @@ class Custom:
size = len(houseInfos)
return houseInfos[size-1]
def signContract(self, houseInfo, agency, time):
&quot;与中介签订协议&quot;
@@ -803,9 +524,6 @@ class Custom:
print(self.getName(), &quot;与中介&quot;, agency.getName(), &quot;签订&quot;, houseInfo.getAddress(),
&quot;的房子的租赁合同, 租期&quot;, time, &quot;年。合同期内&quot;, self.__name, &quot;有权对其进行使用!&quot;)
</code></pre>
<p>测试代码:</p>
@@ -833,15 +551,9 @@ class Custom:
wangwu.publishHouseInfo(myHome)
print()
myHome.signContracts(3)
print()
tony = Custom(&quot;Tony&quot;)
houseInfos = tony.findHouse(&quot;18平米左右要有独卫要有窗户最好是朝南有厨房更好价位在2000左右&quot;, myHome)
@@ -855,9 +567,6 @@ class Custom:
AppropriateHouse = tony.seeHouse(houseInfos)
tony.signContract(AppropriateHouse, myHome, 1)
</code></pre>
<p>输出结果:</p>
@@ -873,21 +582,12 @@ class Custom:
王五在 我爱我家 发布房源出租信息:
面积:18平米 价格:2600元 窗户:有 卫生间:独立卫生间 厨房:有 地址:金隅美和园 房东:王五
我爱我家 与房东 张三 签订 上地西里 的房子的的租赁合同,租期 3 年。 合同期内 我爱我家 有权对其进行使用和转租!
我爱我家 与房东 李四 签订 当代城市家园 的房子的的租赁合同,租期 3 年。 合同期内 我爱我家 有权对其进行使用和转租!
我爱我家 与房东 王五 签订 金隅美和园 的房子的的租赁合同,租期 3 年。 合同期内 我爱我家 有权对其进行使用和转租!
我是Tony, 我想要找一个&quot;18平米左右要有独卫要有窗户最好是朝南有厨房更好价位在2000左右&quot;的房子
我爱我家 为您找以下最适合的房源:
面积:20平米 价格:2500元 窗户:有 卫生间:独立卫生间 厨房:没有 地址:上地西里
@@ -895,17 +595,8 @@ class Custom:
面积:16平米 价格:1800元 窗户:有 卫生间:公用卫生间 厨房:没有 地址:当代城市家园
面积:18平米 价格:2600元 窗户:有 卫生间:独立卫生间 厨房:有 地址:金隅美和园
正在看房,寻找最合适的住巢……
Tony 与中介 我爱我家 签订 金隅美和园 的房子的租赁合同, 租期 1 年。合同期内 Tony 有权对其进行使用!
</code></pre>
<h3>从剧情中思考中介模式</h3>
@@ -1013,9 +704,6 @@ Tony 与中介 我爱我家 签订 金隅美和园 的房子的租赁合同, 租
</div>
</div>
</div>
</div>
@@ -1023,9 +711,6 @@ Tony 与中介 我爱我家 签订 金隅美和园 的房子的租赁合同, 租
</div>
</div>
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
</div>
@@ -1041,17 +726,11 @@ Tony 与中介 我爱我家 签订 金隅美和园 的房子的租赁合同, 租
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-NPSEEVD756');
@@ -1077,9 +756,6 @@ Tony 与中介 我爱我家 签订 金隅美和园 的房子的租赁合同, 租
setCookie("lastPath", path)
}
function setCookie(cname, cvalue) {
var d = new Date();
@@ -1091,9 +767,6 @@ Tony 与中介 我爱我家 签订 金隅美和园 的房子的租赁合同, 租
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
}
function getCookie(cname) {
var name = cname + "=";
@@ -1111,12 +784,6 @@ Tony 与中介 我爱我家 签订 金隅美和园 的房子的租赁合同, 租
return "";
}
</script>
</html>