组合型的设计模式本质是使用组合替代继承;
但是继承并非一无是处;
只是因为大家容易滥用继承造成强耦合;
作为面向对象编程的三大特性之一;
继承还是很有价值的;
比如说本篇文章要讲的模板方法模式;
就是依赖于继承来实现;
抽象类: 定义操作中骨架;比如说执行顺序等;讲具体的执行内容延迟到子类;
子类: 定义具体的执行内容;
Phone.php
Xiaomi.php
Huawei.php
运行;
index.php
从代码中我们可以看出;
在抽象类中使用了 final
这是模板方法标志性的关键字;
它决定了执行的顺序等行为只能由父级抽象类决定;
而子类只需要完成具体的操作内容;
github示例:https://github.com/baijunyao/design-patterns/tree/master/Template
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客https://baijunyao.com 欢迎捐赠赞赏加入组织创建QQ群及捐赠渠道
最新评论