标签:bsp 角色 可维护性 意义 新建 去重 第三方 更新 解耦
接口:存在的意义在于解耦,增强代码的可拓展性,可维护性。
抽象类:常用于充当公共角色,用于被其子类继承,子类继承其实现的方法,去重写其抽象的方法。继承更倾向于对类的完善。
举个栗子:
接口:小明是i西科的码手,某日李师兄分配了任务,要求他写一个类,用于封装教务处爬虫代码,代码会被引用于tsm类(第三方授权平台管理类)中,于是小明就开始写,写了很多代码,但是代码混乱,如果再想加入新的东西,简直太难了。第二天师兄来了实验室,告诉小明把实验课爬虫也加进这个类中。这可苦坏了小明,因为在tsm类中,直接引用了教务处爬虫类,如果修改tsm类也会被涉及到,势必会影响其他功能。这就是不使用接口带来的后果。如果使用了接口结果会怎么样呢?那么小明就不用这个类了,新建一个类,该类实现接口,在新的类中写新的代码。这样在不修改原来的代码的同时,又增加了代码的拓展新。
抽象类:i西科的四个授权平台(教务处、实验课、一卡通、图书馆),他们虽然登录网站,登录方法,登录参数不一致,但是他们都需要从数据库获取密码,如果cookie未失效就获取cookie,登录之后更新cookie存入数据库。这时候就需要抽象类去充当公共类,去实现数据库获取密码,cookie查找更新逻辑代码,而登录,爬取信息等方法就需要子类自己去实现了。
共同点:
(1)都不能实例化
(2)只有子类实现了接口、重写抽象方法后才能实例化
标签:bsp 角色 可维护性 意义 新建 去重 第三方 更新 解耦
原文地址:http://www.cnblogs.com/boycelee/p/6659086.html