关于面向对象--oop

这两天在做大数据方面的项目看到关于job作业调度的设计,扣了两天了,感触良多,记下来做个反省。

这是一个精简版的图,其中还有一些没有划到,其实到这里目前对我来说已经足够了。

看完图之后进行分析,我只抛砖。

ps:任何面向对象的都遵循的设计方法。

  1. 接口job  只是一个接口,提供job的最直接的操作,也是job本身的操作;
  2. jobContext提供给job的上下文环境可以跟job是联系关系,更确切的说是聚合关系,jobcontext有明确的责任范围,给job提供外围的服务;
  3. AbstractJob 抽象job类 ,准确的说是包装了job和jobContext,提供了更便捷的方法;
  4. ProcessJob抽象osJob类,是操作系统级别的进程抽象类,提供了环境变量、配置文件、目录等信息基本上具备了执行的外围条件
  5. ShellJob、HiveJob、JavaJob、MapReduceJob、HadoopShellJob 通过这么设计就可以直接实现受保护的方法,进而实现所调用过程的设计。

当然调用的时候还会用的调度器Schedule来完善自动、手动调度job的内容等。

不过通过以上可以明显发现我们大部分程序设计应该遵循的思想了……

我只抛砖啦……

原文地址:https://www.cnblogs.com/joqk/p/3456452.html