封装很重要,英语也是
Posted on Mon 02 May 2022 in Journal
封装是 OOP 中最重要的特性
OOP 面向对象编程中常常提到封装,继承和多态,在我看来,最重要就是封装。
世界是复杂的,做一个产品,一个项目同样会面临许多复杂琐碎的问题,这时候就需要分解和抽象。 用包,模块,类,函数帮助我们把一团乱麻的方法分门别类地归置起来。 把复杂的逻辑封装在内部,开放简单的接口来外部使用。
比如我会用洗衣机,我对洗衣机的接口和用法很清楚 --> 封装和面向接口编程的重要性
- 0)接上电源和自来水
- 1)打开门
- 2)放入洗衣液
- 3)放入衣服
- 4)按启动按钮
我大致了解洗衣机的工作原理,但不了解洗衣机的内部构造,洗衣机坏了我也不会修, 但是我不妨碍我天天用它。
用 Python 写一个小例子,接口很简单,所以很容易使用,繁琐的线程,加锁全部封装在内部,这就是封装的价值。
#!/usr/bin/env python3
import time
import threading
class Machine(object):
def __init__(self, executor = None):
self._started = False
self._thread = None
self._lock = threading.Lock()
self._executor = executor
def is_started(self):
with self._lock:
return self._started
def start(self, duration):
with self._lock:
self._started = True
self._thread = threading.Thread(target=Machine.run, args=(self, duration))
self._thread.start()
def run(self, duration):
begin_time = time.time()
while self.is_started() and time.time() - begin_time <= duration:
local_time = time.localtime()
self._executor(local_time)
time.sleep(1)
def stop(self):
with self._lock:
self._started = False
self._thread.join()
if __name__ == '__main__':
machine = Machine(lambda local_time : print("Laundry service at {}".format(time.strftime("%H:%M:%S", local_time))))
machine.start(5)
time.sleep(3)
machine.stop()
- 运行结果
./Machine.py
Laundry service at 10:59:32
Laundry service at 10:59:33
Laundry service at 10:59:34
15 种改进电子邮件写作的方式
来自赖世雄所著 "Teach You to Write Business E-mails"
- Make Your Reader The First Priority 把读者放在首位
- Write a Good Subject Line 写好标题
- Use a Standard Greeting 使用标准问候语
- Specify Who You Are and Why You Are Writing 表明身份和来信理由
- Don't Make People Try to Read Your Mind 不要让人去猜测你的想法
- Avoid Long, Rambling Message 避免冗长含糊的讯息
- Choose Between Formal and Casual 在正式与非正式间做出正确的选择
- Copy and Paster If You Can 尽量使用复制粘贴,少用附件
- Take the Time to Proofread 要花时间进行校对
- Watch What You Write 小心你所写的内容
- Respect People's Privacy 尊重他人的隐私
- Be Careful with Those Button 小心那些按键,尤其是发送给所有人
- Don't Forget to Reply Without Delay 别忘了要迅速回复
- Don't Write Anything You Will Regret Later 不要写下任何会让你后悔的文字
- Manners Matter 礼仪和态度很重要