设计模式 · 开关和灯泡的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式 · 开关和灯泡的问题相关的知识,希望对你有一定的参考价值。

参考技术A 一、 假设我们现在有一个开关(打开和关闭)、还有一个灯泡(发光和不发光),开关控制灯泡,当开关打开后,灯泡亮。思考:你如何做设计?

这可能就是最原始的面向对象,但是这样是否尽可能的满足扩展和复用性?可想而知,并不能!假设我们现在要加一个热水壶,我们怎么设计能够同时兼容这种开关?(从面向对象特性、抽象方式去思考)。

这下比较好些了,我们提供了一个ApplianceInterface的接口,只要实现这个接口的,我的开关都兼容,这也是多态的一个简单示例;
再来点有难度的,我们来个100个假设:
1.假设我想让我的热水器在(现有的基础上,不改变原有类)加个闪光灯(是不是很潇洒);
2.假如我的开关也想让他也有多个按钮,加个开启闪光灯的按钮吧;
come on, zouni!

实话说,用了什么设计模式,我也不知道,我也希望实战的人不要去关心叫什么,而是去运用面向对象的思维方式。具体应用了哪种模式我后续做个研究总结。

以上是关于设计模式 · 开关和灯泡的问题的主要内容,如果未能解决你的问题,请参考以下文章

leetcode-灯泡开关 Ⅱ

Leetcode 672.灯泡开关II

灯泡开关

319 Bulb Switcher 灯泡开关

行为篇-命令模式

《LeetCode之每日一题》:208.灯泡开关