Java进阶学习笔记(九)

2019-07-19  本文已影响0人  理以周

1.DOME的新媒体类型:

1.1 增加新的媒体类型:

可扩展性:函数、类,你的代码不需要修改就可以完全去适应新的内容;

可维护性:经过修改了再去适应;

1.2 更深的继承:

增加新的类型

2.城堡游戏:

2.1 游戏设计:

Room类 Game类

2.2 消除代码复制:

    \bullet 代码复制是不良设计的一种表现,不利于将来的需要----维护;

2.3 增加可扩展性:

    \bullet 可以运行的代码!=良好的代码;

    \bullet 对代码做维护的时候最能看出代码的质量;

    \bullet 如果想要增加一个方向,如down或up

3.封装:(代码的维护成为好坏的评价标准)

3.1 用封装来降低耦合:

    \bullet Room类和Game类都有;

    \bullet 尤其是Game类中大量使用了Room类的成员变量;大量的代码和出口相关;

    \bullet 类和类之间的关系成为耦合;

    \bullet 耦合越低越好,保持距离是形成良好代码的关键;

4. 可扩展性:

4.1 用接口来实现聚合:

    给Room类实现的新方法,把方向的细节彻底隐藏在Room类内部了;

    \bullet 今后方向如何实现就和外部无关了;

4.2 用容器来实现灵活性:

    \bullet Room的方向是用成员变量表示的,增加或减少方向就要改变代码;

    \bullet 如果用Hash表来表示方向,那么方向就不是“硬编码”的了;

容器、hash表的灵活使用

5.框架加数据:

5.1 以框架+数据来提高可扩展性:

    \bullet 命令的解析是否可以脱离if-else;

    \bullet 定义一个Handler来处理命令;

    \bullet 用Hash表来保存命令和Handler之间的关系;

框架

6.抽象:

6.1 抽象函数/抽象类

    \bullet 抽象函数----表达概念而无法实现具体代码的函数;

    \bullet 抽象类-----表达概念而无法构造出实体的类;

    \bullet 带有abstract修饰符的函数;

    \bullet 有抽象函数的类一定是抽象类;

    \bullet 抽象类不能制造对象,但是可以定义变量,任何继承了抽象类的非抽象类的对象可以付给这个变量;

抽象类

6.2 实现抽象函数:

    \bullet 继承自抽象类的子类必须覆盖父类中的抽象函数,否则自己成为抽象类;//实现

实现抽象

6.3 两种抽象:

    与具体相对;

        \bullet 表示一直概念而非实体;

    \bullet 与细节相对;

        \bullet 表示一定程度上忽略细节而着眼大局;

抽象


上一篇 下一篇

猜你喜欢

热点阅读