在多模块程序中访问模块的变量和方法

Access to variables and methods of a module in a multi-module program

我正在编写一个模块化程序,目的是让模块作为独立单元与核心程序结合使用,功能齐全。

这意味着程序在 "plugged in" 或删除新模块时根本不会中断,并且不需要更改任何其他代码即可在有或没有某些模块的情况下编译和执行程序。

我的问题是,我是否应该为所有模块中的所有变量设置 public getter 和 setter,并使所有方法 public,这样如果开发人员需要访问或更改变量 (例如)在某些模块中开发自己的模块时,他们可以这样做而无需更改访问修饰符,或者我应该重新考虑我的设计吗?

提前致谢!

我会根据我对你问题的理解尽量回答,只要能帮到你。如果你还需要问什么,请发表评论否则不要忘记评价我的回答。

访问修饰符 (public, private, etc) 的构建是为了在您的 类 中实现 abstraction and encapsulations,它们都是面向对象编程的关键概念。所以你必须分析你的需求你应该向外界透露或披露什么,特别是如果你想发布你的代码并在不同的地方使用系统,并且您不需要其他开发人员更改某些 仅在内部使用 的属性,例如 database connection string.

  • 模块化,您可以在其中通过接口定义 public 功能并实现这些接口。

  • 此外,我想到了一个原则,即您应该倾向于组合而不是继承,以避免大量代码更改、中断和依赖。

  • 依赖注入框架可以帮助您注入模块,例如 Spring 框架带有依赖注入。

  • 所有这些原则将实现 Open-closeLiscov substitution 原则,这些原则的目标是使扩展和扩展代码变得容易和开放,同时仍然保持系统关闭修改。

现在应该涉及设计模式,您应该将组件构建在一起,它仍然基于您的 要求,您可以在其中使用 Factory Method 例如以防万一你有一个工厂建造多种类型的物体。 Strategy 您需要在运行时根据用户活动等更改行为

答案甚至应该比这更长,但我试图让您一瞥应该从哪里搜索并从这里继续。