产品大大说:我们要实现这样一种功能:在html中展示一排数字0-9,当用户在键盘上按某个数字的时候,对应的数字点亮
模块拆分:创建一个类(InputManager)来控制键盘输入事件,创建第二个类(Render)控制数字样式的高亮。两者之间联系是,在监控到键盘事件之后在InputManager中调用Render的方法。这样数据和方法都被封装了起来
产品大大又说:我需要增加一个功能,点亮数字的同时,将输入的数字Alert出来
糟糕,发现Render类已经被其他页面使用,不能直接修改。我们用class的继承来避免重复代码,实现一个Render的子类(RenderWithAlert)。 在子类中重写它的公共方法。这样就实现了多态。
面向对象编程特点:继承,封装,多态