当前位置: 网站首页>小程序开发>网络推广

宿迁400电话办理【宿迁网站公司】宿迁百度优化、宿迁域名注册、宿迁网店美工、宿迁微信公众号托管

发表日期: 2021-04-25 12:42:06 浏览次数:99

宿迁400电话办理【宿迁网站公司】宿迁百度优化、宿迁域名注册、宿迁网店美工、宿迁微信公众号托管

宿迁,简称宿,别称水城,古称下相、宿豫、钟吾等,江苏省地级市,宿迁位于长三角北翼,江苏省北部,是长三角北翼区域性综合交通枢纽, [1]  地处徐州、连云港、淮安中心地带。宿迁是江苏省沿海地区向中西部辐射的重要门户城市 [2]  ,是徐州都市圈、江淮生态经济区核心城市 [3]  、一带一路节点城市 [4]  。截至2020年6月,宿迁下辖2区3县 [5]  ,总面积8555平方千米。截至2019年末,宿迁户籍人口592.36万 [6]  。

宿迁是西楚霸王项羽的故乡,有着5000多年的文明史和2700多年的建城史,曾是泗水国、钟吾国、宿国都城,历史悠久,人文荟萃,素有“华夏文明之脉、江苏文明之根、淮河文明之源、楚汉文化之魂”之称 [7]  。宿迁是酒文化的发源地之一,有中国白酒之都称号 [8]  ,洋河、双沟两大名酒出产于此。宿迁是典型的苏北水乡,坐拥骆马湖、洪泽湖两大淡水湖,大运河、古黄河、淮沭新河等众多河流镶嵌其间。乾隆皇帝六下江南五次驻跸于此,赞叹宿迁为“第一江山春好处” [9]  。

宿迁是首批12个社会信用体系建设示范城市 [10]  ,是中国优秀旅游城市 [11]  、国家园林城市 [12]  、国家卫生城市 [13]  、全国文明城市 [8]  。2020年10月,宿迁被评为全国双拥模范城(县) [14]  。

一个不在欧洲的团队需要为在德国开发用户接口的团队提供远程控制。因为自动控制接口还没有完成,于是他们擅自使用内部接口作为替代,而没有通知架构师。不一致的接口变更导致系统整合时遭遇了意想不到的问题,高昂的重构开销在所难免。

因此,接下来的部分会讨论如何使用编程语言的访问控制特性为API提供最大限度的信息隐藏。之后,我们也会提到一些C++语言特性影响封装的情况,如友元和外部链接。

提示 逻辑隐藏指的是使用C++语言中受保护的和私有的访问控制特性从而限制访问内部细节。

隐藏成员变量

术语“封装”也经常用于描述打包数据和操作这些数据的方法。在C++中,通过让类同时包含变量和方法来实现封装。然而,按照良好API的设计原则,不应该将成员变量设置为公有的。如果数据成员构成了API逻辑接口的一部分,那么应该使用getter或setter方法间接地访问成员变量。例如,应该避免将代码编写成:

class Vector3{public:
   double x,y,z;};复制代码

而应该编写成:

class Vector3{public:
   double GetX() const;
   double GetY() const;
   double GetZ() const;
   void SetX(double val);
   void SetY(double val);
   void SetZ(double val);private:
   double mX,mY,mZ;};复制代码

后者的语法显然更加繁琐,对程序员而言需要敲入更多的字符,但是现在为此多费的这几分钟,将来会在修改接口时省下数小时甚至数天。使用getter/setter惯用法与直接暴露成员变量相比,还有以

下额外的好处。

  • 有效性验证。可以检验值的有效性,以确保该类的内部状态始终有效且一致。例如,如果有个可以让客户更新某个RGB颜色的方法,那么就可以检测每次输入的红、绿、蓝值是否在有效范围内,如0~255或者0.0~1.0。

  • 惰性求值。计算变量的值会带来巨大开销,应该仅在需要的时候才执行计算。通过使用getter方法访问内部数据的值,可以仅在需要这种高消耗的计算时再执行。

  • 缓存。典型的优化技巧是:存储频繁请求计算的值,在将来请求时直接返回存储的值。例如,解析Linux上的/proc/meminfo文件可以得到机器的内存总量。与每次请求内存总量时都去执行读文件操作相比,效率更高的方法是将第一次读取的值缓存起来,并在以后需要时直接返回缓存的值。

  • 额外的计算。如果需要,可以在客户试图访问某个变量时执行一些附加操作。例如,只要用户更改某个首选项设置的值,就将UserPreferences类的当前状态写到磁盘上的配置文件中。

  • 通知。其他模块可能需要知道类中的值何时发生了变化。例如,如果你正在实现一个进度条的数据模型,那么用户界面代码就需要知道何时更新了进度值,以便它能及时更新GUI。所以,你可能要在setter方法中发布变更通知。

  • 调试。可以增加调试或日志语句,从而追踪变量何时被客户访问或改变;也可以增加断言(assert)语句来强制假设成立。

  • 同步。在发布API的第一个版本后,可能发现它不是线程安全的。标准的解决方法是在任何访问值的地方增加互斥锁,而这样做的前提是要访问的数值都已包装在getter/setter方法中。

  • 更精细的访问控制。如果将成员变量设置为公有的,那么客户就可以随意读写该值。但在使用了getter/setter方法后,就可以提供更精细的读写控制级别。例如,不提供setter方法就可以使该值变为只读。

  • 维护不变式关系。一些内部数值可能彼此依赖。例如在汽车动画系统中,需要根据汽车在关键帧之间运动所花费的时间,来计算它的速度和加速度。速度可以通过一段时间内的位置变化来计算,加速度则可以通过一段时间内速度的变化来计算。然而,如果用户可以访问该计算的内部数值,他们可能会改变加速度的值,导致汽车的加速度和速度不再相关,进而导致意想不到的结果。

c51c866ffa1ab3457f2021e8bbdbcc1.jpg

宿迁400电话办理宿迁网站公司宿迁百度优化、宿迁域名注册、宿迁网店美工、宿迁微信公众号托管

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878