大话模式学习笔记-代码无错就是优?-简单工厂模式

仅仅是个人学习笔记,不具备参考价值。


1.5活字印刷,面向对象

关于可维护性(也叫做易修改)、可扩展性、可复用、灵活性的理解。
  1. 可维护性
    一个模块的功能由10个类组成,当需求发生改动时,只更改修改点对应的类(一个或几个类)即可,这样是易维护。而不是每个类都涉及到,需要10类都改,这样不易维护。当然排除新需求和原有需求天差地别,那就是重新写这个模块了。对现有需求的修改,更改较少的类。

  2. 可扩展性
    还是一个模块由10个类组成,当有新需求时,我们只需要增加新类和原有的10个类配合完成新需求,这样是易扩展。
  3. 可复用
    一个模块由10个类组成,这个模块可以为模块一提供服务,为模块二提供服务,为模块N提供服务。这个模块可以在项目1里使用,也可以在其它项目里使用,这叫易复用。
  4. 灵活性
    比如数据持久层框架MyBatis即可以连接Oracle数据库也可以连接MySql数据库。这个可以成为灵活性比较好。其实灵活性也可以理解为可维护性、可扩展性、可复用三个指标的综合评分。
举个综合的例子。还是一个模块由10个类组成,这个模块中一个小功能是根据出入的userid返回用户名,这个功能由三行代码组成,每个类中都使用了这个功能,都包含了这三行代码。需求发生变化:用户名和用户所在部门拼接成字符串返回。我们需要打开10个类分别修改,健值就是灾难。这样的做法不易维护、不易扩展、更谈不上复用了。

1.11 UML类图

类:矩形代表类,共分为三行。第一行是类名,第二行是字段和属性,第三行是方法。其中"+"表示public,"-"表示private,"#"表示protected。
抽象类:同类的区别就是,抽象类用斜体表。
接口:矩形代表接口,共分为三行。第一行是接口名,第二行是方法名。

继承:实线+空心箭头。
实现:虚线+空心箭头。

关联关系:实线箭头表示。
聚合关系:空心菱形+箭头。聚合体现的是一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但是B对象不是A对象的一部分,是整体与个体的关系。例如:多个学生凑在一起形成一个班级。
合成(组合)关系:实心菱形+箭头。合成体现的是一种强'拥有'关系,体现的是A对象是B对象的一部分,是部分和整体的关系,部分和整体的声明周期是一样的。例如:翅膀是鸟的一部分。大脑是人的一部分。
依赖关系:虚线箭头表示。比如人需要氧气和水才能活。人Class依赖氧气Class和水Class。

其实以上四种关系都是类和类之间的关系。其中关联关系包括聚合和组合两种关系。依赖体现的是一个类中的方法的参数和返回值,例如:类C中方法public BClass update(AClass ac){},类C依赖BClass和AClass。 关联体现的是类中的成员变量,例如:类C 总有个private BClass bc;,类C关联了BClass。

你可能感兴趣的:(大话模式学习笔记-代码无错就是优?-简单工厂模式)