2017-12-27 792 views
-2

我有一个模块化的程序我写的目的是具有完全功能为与核心程序一起独立的单元模块。访问变量和模块的方法,在多模块程序

这就需要程序没有违反在所有当一个新的模块被“插入”或去除,并且需要用于该程序编译和具有或不具有某些模块执行不改变任何其他代码。

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

预先感谢您!

+0

问题不够清楚,只要我不知道确切不过,我可以给你一些指引,以达到您的要求设计一个模块化的组件,你做了什么! – msoliman

+0

@msoliman我没有做任何事情,我问,这样我就不必再回去删除所有我写。我尝试使用反射和自定义配置文件,但看到我无处可去,而且我可能会用Java做所有事情。使用公共getter,setter和方法将是一个解决方案,但我想知道是否有更好的方法来解决这个问题。谢谢你的评论! – nanoandrew4

+0

你好,欢迎来到Stack Overflow。这是一个很好的问题,但不是一个好的问题,因为它非常广泛。你可能会得到赞誉,但不要灰心:这个网站对某些类型的问题很有帮助(并且对其他类型的敌对)。请花点时间阅读[帮助页面](https://stackoverflow.com/help)和其他好问题,以了解本网站的用途。 – DavidS

回答

0

我会尽力,只要我需要帮助你回答根据我对你的问题的理解。如果你还需要问什么,请发表评论,否则不要忘了给我的答案。

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

  • 模块化,您可以通过接口定义公共功能并实现这些接口。

  • 此外,还有一个原则,它来到我的脑海里,你应该有利于组成了继承,以避免大量的代码更改和休息和依赖性。

  • 依赖注入框架,可以帮助你注入你的模块,例如Spring框架依赖注入来了。

  • 所有这些原则将实现Open-closeLiscov substitution原则,旨在使它容易和易于扩展和轻松扩展您的代码,并保持您的系统密切修改。现在

它应该来设计你应该构建您的组件连接在一起,它仍然是基于你要求模式,您可以在情况下使用Factory Method例如你有一个厂房内,多种类型的对象。 Strategy,你需要根据用户activaties在运行时更改的行为,...等。

答案甚至应该比这个,但是我试图让一瞥,你应搜索,并从这里继续更长时间。

+0

我更新了我的问题,希望能够提供更多关于我的问题的详细信息,但只是要说清楚:假设我有一个核心模块(运行所有模块的模块)和辅助模块x和y。另一位开发人员出现并希望开发模块z,但需要从模块x运行一个方法并从模块y获取一些变量。为了促进这一点,我应该只是将所有内容公开访问,以便模块x和y中的所有内容都可访问,或者我应该让他们根据他们认为合适的方式调整其他包中的访问修饰符? – nanoandrew4

+0

将公开必要的内容并在将来稍后进行调整,以提供更多访问权限。如果你说有多个客户,他们中的一些应该有公共财产,而另一个客户或模块需要不同的公共财产,使用继承或组合,并为每个人自己的类别披露,@ nanoandrew4是否清楚或你仍然困惑 – msoliman

+0

您的评论很清楚,感谢您的快速回复。 – nanoandrew4