我正在编写一个模块化程序,旨在将模块作为独立单元与核心程序一起使用。
这需要程序在“插入”或删除新模块时根本不会破坏,并且不需要更改任何其他代码,以便程序在有或没有某个模块的情况下编译和执行。
我的问题是,我是否应该为所有模块中的所有变量设置公共getter和setter,并将所有方法公开,以便开发人员在开发自己的模块时需要访问或更改某个模块中的变量(例如)模块,他们可以这样做,而无需更改访问修饰符,或者我应该重新考虑我的设计?
提前谢谢!
答案 0 :(得分:0)
只要我需要帮助你,我会根据我对你问题的理解来回答。如果你仍然需要提出任何问题,请发表评论,否则不要忘记评价我的答案。
构建访问修饰符(public, private, etc
)以在类中实现abstraction and encapsulations
,它们都是面向对象编程的关键概念。所以你必须分析你的要求你应该向外界揭示或披露的内容,特别是如果你想要发送你的代码并在不同的系统中使用你并且不要; t需要其他开发人员更改一些使用仅在内部的属性,例如database connection string
。
模块化,您可以通过接口定义公共功能并实现这些接口。
此外,我想到了一个原则,你应该支持组合而不是继承,以避免大量的代码更改和中断和依赖。
依赖注入框架可以帮助您注入模块,例如Spring框架带有依赖注入。
所有这些原则都将实现Open-close
和Liscov substitution
原则,这些原则旨在让您轻松,开放地扩展和扩展代码,并使您的系统保持关闭以进行修改。
现在应该设计一种模式,您应该将组件组织在一起,但它仍然基于您的要求,您可以使用Factory Method
例如,如果您有一个工厂建筑物多种类型的对象。 Strategy
您需要在运行时根据用户活动更改行为,..等等。
答案甚至应该比这更长,但我试图瞥见你应该搜索并继续从这里开始。