网站邮箱验证怎么做,好看的移动端网页,上海社区网站建设,网站自动化开发类内部结构
类内部架构实际上是一个小型的状态机#xff0c;成员变量是状态变量#xff0c;成员函数是处理机。一般提倡一个类实现一种特定的功能#xff0c;这样可以降低实现的复杂性#xff0c;状态机越简单#xff0c;越利于实现。
实例间通信
软件的功能是多个模块…类内部结构
类内部架构实际上是一个小型的状态机成员变量是状态变量成员函数是处理机。一般提倡一个类实现一种特定的功能这样可以降低实现的复杂性状态机越简单越利于实现。
实例间通信
软件的功能是多个模块共同协作来实现的。这就需要多个模块的实例进行通信、相互调用。 相互调用和访问对类或模块来说就是设计对外接口。这也是public、private关键字的设计思想。
对外接口数量越少每个模块间的耦合越少代码维护起来越简单反之模块间交互越多耦合性越高软件维护难度越高。
对于开发人员来说类或者模块实例间的相互访问要求程序员控制好实例的可见性。如果控制不好软件后期的维护难度会增加。
实例可见性管理
实例可见性管理分为实例生命周期管理和实例访问路径管理两个方面。
实例生命周期管理
每个实例都有生命周期生命周期是软件开发人员可以控制的。例如基本类型的变量只能存在于作用域内超出作用域其保存的数据就会失效。实例也一样实例只有在生存期内才可以被访问。这是一切访问的前提。 生命周期管理即要求软件开发人员正确分配实例存活时间。
如果实例存活时间太短会导致找不到此实例无法实现预期功能。如果实例存活时间太长会持续占用内存等资源造成资源利用率低。例如将所有实例采用全局变量保存优点是此实例在整个软件运行时间任何模块都能访问缺点是这样的软件资源消耗会很严重。
实例访问路径管理
访问途径和实例的嵌套程度有关。 例如全局实例、可全局访问的单例、位于全局实例内的实例半全局可以通过最多一次函数调用获取到实例地址。而对于嵌套的类来说嵌套的层数即获取实例地址需要间接寻址或函数调用的次数。显然访问路径越简单需要编写的代码越少开发和运行效率也越高。 所以最简单的路径还是全局的或半全局的并且在软件设计中减少类嵌套简化访问路径。
例如你现在参与一个已在开发中的项目后为了添加一个需求你需要访问一些已有的实例数据。你可能会遇到暂时获取不到目标实例指针的问题这就需要你自己添加获取目标实例指针的代码或者调整代码结构这无疑是不少的工作量。但是对客户来说明明窗口都在那摆着直接一句话访问不就行了吗而客户却不知道你为了修改一个功能要考虑如何更好的管理实例生命周期。最后的结果是加班或者拖延项目进度。 从上面的例子可知已有的代码可以帮助你也可以让你发疯。
实例可见性管理是会随着需求的改变而需要动态调整的。例如有的变量本来只需要在内部访问在需求改变后需要在几个模块间共享这就需要对其可见性进行修改。
正因为可见性管理是会随需求改变而改变的所以在实际开发中可以将其生命周期设置得灵活一点或者留有一些余量以便于对未来的改变做较少的调整。 有一种比较松散的实例管理方式。每种实例设置一个全局的管理器多个相关实例具有相同的id。根据其中一种数据查找相关数据时只需要用同一个id去查找。一个实例销毁不影响其他实例可以自由控制实例的生存时间。 量化
如果将实例的访问管理交给软件开发者管理会增加软件开发者的负担同时也因为软件开发者能力或项目预算等因素导致软件的开发、维护工作量不稳定降低软件质量。
所以如果可以将实例的访问管理进行量化让所有的需要交互的实例即相对非内部的实例或数据均为全局、半全局实例在开发完成后进行自动优化及时释放资源未被使用的资源这就会减轻软件开发者的负担提高开发效率最终有更多的时间去减少bug优化交互等等从而提升软件质量。
总结
本文主要介绍了使用面向对象的方法开发软件时程序中对象协作方式与实例管理相关内容为了写出更好的软件可以参考上述内容考虑代码的组织结构。