我感觉第三章中,类的职责没有细分好。主要是两点

来源:3-5 使用组合设计模式优化代码

杨少峰

2020-02-19

我感觉第三章中,类的职责没有细分好。主要是两点:

  1. 对于其他开发者使用的话,并不友好。(使用不灵活和便捷)
  2. 类的组合不太合理。
    2.1、我的理解,假如我是一个爬虫库封装者的话,让其他开发者使用我的爬虫库,那么我应该只对外开发一个入口。而不是让用户new两个类。
    2.2、crowller这个类既然定义为基类,那我觉得analyzer这个类应该继承crowller,它拥有crowller的所有方法。 那么,crowller里面则是封装所有爬虫都可以使用的公用方法。

ps:

比如,我司某天要同时爬取5个网站,我总不能去new 5个class吧~~~

而是我应该去new一个统一的爬虫类,去传递统一的url,然后再写一个class,由这个class继承crowller的所有爬虫公用方法。

个人见解,想问下作者有何看法?

写回答

2回答

Dell

2020-02-22

同学你好,真正编写crowller,实际上没必须要这么写的,这么写主要是为了衍生出一些知识点,让大家巩固下基础,真正的使用方式在后面的实战里会逐步涉及。

0
1
杨少峰
非常感谢!
2020-02-24
共1条回复

布罗利00

2020-05-03

个人觉得,老师也是因此引发出组合模式 。Analyzer类感觉是对扩展开放原则。Analyzer类可以作为抽象类, 让用户定义的子类去继承它 ,并实现analyze接口。两个类的之间,尽可能单一职责原则

0
0

专为小白设计的TypeScript入门课

Dell老师专为TypeScript小白打造的,全栈式教学TS入门课程

2249 学习 · 506 问题

查看课程