设计模式.模板设计模式(Abstract主流程调用来,预留抽象方法给子类实现)

画类图的设计模式你能记住吗?

画类图的设计模式你能知道什么情况下用吗?

我不画类图,我不讲框架,我只讲故事。

1. 场景

关键字:组件

我是个学电路的,我呢想造个模块卖出去,比如GPS模块,别人拿到我的模块就能拿到经纬度数据,我怎么办呢?

我总不能把电路图给别人吧,那谁还买我的模块呢! 我就把自己的电路封装到这么一个集成电路中,只给别人流出接口即可,比人想用你的模块,就得实现你的接口。

有时候你这种组件比较大,比如:电脑主板(如下图),电脑主板生产商可不给你生产CPU,内存的,他只是给你留了个CPU和内存的接口(看看下图),我自己搞一个CPU或者内存,只要跟主板的接口一样,插上去,也可以使用了。但人家主板怎么用你的CPU内存,你不知道吧,对喽,人家集成进去了,不让你看。也就是说,厂商把需要你自己实现的组件留一个接口出来,把对组件的调用封装起来。

想想现实生活中,主板生产商(如:华硕,技嘉,微星,升技,映泰) + 硬盘(希捷,西部数据)+CPU(因特尔,高通)… ===> PC,这个===过程就是电脑集成,比如:联想,IBM等,所谓的攒机的。如果你站在主板生产商的记住看,理解一下模板

2.案例解决

能认识下面这些东西吧

  • 从0到1构建:

比如: 我做个电机,电机输入时电,输出的是动力。电机内部当然我不想让客户自己动,但输入的电力和输出的动力需要用户自己来设计,你是驱动啥呢?用户把轴上连接叶片就是风扇,连上刀片就是豆浆机,连上车轱辘就是电动车。

代码实现:(Java语法)

1. 电机为Abstract类,需要输入输出的作为abstract方法,需要输入的作为参数。

2. 电风扇类集成电机类,实现abstract方法,即可。

  • 重构现有代码:

比如:我有电风扇,豆浆机,电动车。发现他们都是:接通电源,启动,输出动力。那么我们就可以把这些共性提出来。

3. 实现一:继承Abstract类

对比一下实现,想想上面的例子,Engine1类是不是提出的组件,GPS模块。

调用:

ElectricFan1 fan1 = new ElectricFan1();

fan1.setEle(new Object());

fan1.start();

逻辑:这种方式电机是风扇的一部分。

4. 实现二:扩展接口

这个是以计算机为主的

5.比较:

不比较了,自己体会吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闲猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值