分布式管理和集中式管理的优劣-----项目架构和配置分离

来源:互联网 发布:sql安装提示之前挂起 编辑:程序博客网 时间:2024/05/20 16:40

模块化是不可逆转的趋势

    • 模块化是不可逆转的趋势
      • 面向接口编程的优势
      • 集中式管理的优劣
      • 分布管理的优劣
      • 高内聚和低耦合
        • 高内聚
        • 低耦合
      • 总结

现如今,在整个项目开发的过程中模块化以他独特的优势引领了一股项目架构潮流。灵活,可复用,后期易维护,代码逻辑清晰,所有的这些都成为了模块化开发的代名词。然而任何一种事物,只要能够被众人所认可,自然有他被认可的理由,从分工管理的角度来看的话这种模块化架构方式是有一定的哲学思想在其中的。

面向接口编程的优势

  1. 逻辑自定义复用性增强
    好多人会提到面向接口编程,我们知道接口最大的优势就是他方法的逻辑是可以自定义的,我们定义一个接口,然后通过实现该接口可以创建出无数拥有自己内部逻辑的类,最大的优势这些逻辑是由你来定的,从这个角度来看的话定义一个接口可以在很多地方得到运用,这要比你单独去创建若干个类显然要“合算”的多。

  2. 带返回值方法的回调利于封装,模块化
    接口编程的基本流程就是定义接口和抽象方法;创建实现类并在方法的实现中书写逻辑;以接口实现类的方式实例化;调用实现类中写好的方法并在外部传入参数实现数据库的操作。用一句话来总结的话就是封装逻辑,回调方法。

  3. 作为方法参数传值灵活性更强(匿名内部类)
    接口的另外一个优势就是可以作为方法的形参,和其他类型的参数不同的是,以接口为参数我们在传入具体参数值的时候就可以直接以匿名内部类的形式传入相关逻辑,这样就实现了逻辑随处可以自定义的效果,从灵活性的角度来看的话这种方式更具灵活性。
  4. 接口继承实现逻辑的组合
    接口是可以相互继承的,我们完全可以运用接口这种特点,在项目功能模块划分的时候进行有效的分类,接口的这种特点使得模块化开发更加灵活多样。(纵向继承,横向封装)

集中式管理的优劣

集中式优点:

  1. 将所有的操作都集中起来,便于配置和查询。
  2. 整合到一起管理起来更加方便。
  3. 配置项一目了然,非常直观。

缺点:

  1. 高度集中会导致相应的配置文件过于臃肿。
  2. 由于模块配置数据高度集中,无形中文件的健壮性就会大大降低(串并连原理)。
  3. 高集中不代表着高内聚。

分布管理的优劣

分布式优点

  1. 灵活性强,模块之间不会相互影响
  2. 类似电路中的并联,使得整个项目的稳定性更强

分布式缺点

  1. 模块集中程度低不利于统一管理
  2. 分散性给调试带来了不便

高内聚和低耦合

高内聚:

内聚指的是单个模块内部功能的集成程度,可以理解为密度。模块的内聚性强不等同于“大集成”,“大杂烩”。我们要事先明确一个前提,内聚说的是单个功能模块的属性特点,是对单个功能模块的性能进行优化。所以在谈到内聚和耦合的时候我们要干的第一件事情就是要对项目整体进行一个清晰的模块划分,做到没有重合,没有冗余。然后针对单个功能模块进行内聚优化。

高内聚的优点:

  1. 从模块的角度来看就是项目整体模块功能划分的更细,各司其职,各自为营。
  2. 单个模块内聚程度高 牵连的额外”类”少,不会出现牵一发而动全身的状况,这样就更利于项目后期的变更和维护。
  3. 项目整体分门别类,代码逻辑更加清晰
  4. 代码的复用性和健壮性增强,用一句话来形容就是“事不关己高高挂起”,远离是非之地,那你肯定能活的逍遥快活(健壮性)。

低耦合:

低耦合说的是模块与模块之间的一种状态,耦合即关联,耦合性高就是模块之间关联程度高,是唇亡齿寒的关系,也可以理解是电路中的串联,只要有一个模块出问题就会波及关联模块。我们追求的是一种模块各自工作,互不影响的工作状态,就好比并联电路。从项目整体稳定性而言,低耦合的优势显而易见,即便是某一块模块出现了问题也不会影响项目的其他功能。

总结:

在理解项目架构优化和模块化开发的优点的时候,我们要本着一个原则那就是最优原则,我们追求高内聚低耦合但也不是任何时候项目都必须要满足这种要求(就好比数据库设计中的忽略第三范式一样),权衡利弊找到一个最佳的平衡点,然后大胆的去对项目的功能模块进行划分,要坚信自己的想法,并用自己的行动去践行自己的创造性思维。

原创粉丝点击