怎么查看老公微信聊天记录短信 知道微信密码可

访客4年前黑客文章414

1.分层设计,隔离平台相关的代码。就像可测试性一样,可移植性也要从设计抓起。一般来说,最上层和最下层都不具有良好的可移植性。最上层是GUI,大多数GUI都不是跨平台的,如Win32 SDK和MFC。最下层是操作系统API,大多部分操作系统API都是专用的。   如果这两层的代码散布在整个软件中,那么这个软件的可植性将非常的差,这是不言自明的。那么如何避免这种情况呢?当然是分层设计了:   更底层采用Adapter模式,把不同操作系统的API封装成一套统一的接口。至于封装成类还是封装成函数,要看你采用的C还是C++写的程序了。这看起来很简单,其实不尽然(看完整篇文章后你会明白的),它将耗去你大量的时间去编写代码,去测试它们。采用现存的程序库,是明智的做法,有很多这样的库,比如,C库有glib(GNOME的基础类),C++库有ACE(ADAPTIVE Communication Environment)等等,在开发之一个平台时就采用这些库,可以大大减少移植的工作量。   最上层采用MVC模型,分离界面表现与内部逻辑代码。把大部分代码放到内部逻辑里面,界面仅仅是显示和接收输入,即使要换一套GUI,工作量也不大。这同时也是提高可测试性的手段之一,当然还有其它一些附加好处。所以即使你采用QT或者GTK+等跨平台的GUI设计软件界面,分离界面表现与内部逻辑也是非常有用的。   若做到了以上两点,程序的可移植性基本上有保障了,其它的只是技术细节问题。   2.事先熟悉各目标平台,合理抽象底层功能。这一点是建立在分层设计之上的,大多数底层函数,像线程、同步机制和IPC机制等等,不同平台提供的函数,几乎是一一对应的,封装这些函数很简单,实现Adapter的工作几乎只是体力活。然而,对于一些比较特殊的应用,如图形组件本身,就拿GTK+ 来说吧,基于X Window的功能和基于Win32的功能,两者差巨大,除了窗口、事件等基本概念外,几乎没有什么相同的,如果不事先了解各个平台的特性,在设计时就精心考虑的话,抽象出来的抽口在另外一个平台几乎无法实现。   3.尽量使用标准C/C++函数。大多数平台都会实现POSIX(Portable Operating System Interface)规定的函数,但这些函数较原生(Native) 函数来说,性能上的表现可能较次一些,用起来也不如原生函数方便。但是,更好不要贪图这种便宜而使用原生函数函数,否则搬起的石头最终会轧到自己的脚。比如,文件操作就用fopen之类的函数,而不要用CreateFile之类的函数等。

相关文章

Word2003文档打不开怎么办?

 在平时的工作中作为,大家在所难免遇到Word无法打开的情况下,那麼大家应当如何解决这个问题呢?下边Word同盟就来给大伙儿详细介绍两中非常简单,并且十分应用的方式,迅速的让大伙儿修复到之前一切正...

借呗1000一天利息多少

  借呗利钱按日计息,支持随借随还 几多借呗利钱=借钱金额*日利率*借钱天数 如果:借钱10000元,日利率为0.04%,借钱1天 利钱=10000*0.04%*1=4   “几多借呗”是蚂蚁微贷旗下...

家庭主妇做什么能赚钱(十大适合宝妈做的工作

家庭主妇做什么能赚钱(十大适合宝妈做的工作

MON 01 春节和一个家乡的朋友聊天,聊起一个做了微商的朋友晶晶,他问我:「你猜,晶晶一个月能赚多少钱?」 我翻看着晶晶的朋友圈,每天3、4条,横竖不过就是卖卖自己做的牛肉干、辣椒酱,间或...

网络赚钱项目有哪些(最大的手机网络赚钱兼职

网络赚钱项目有哪些(最大的手机网络赚钱兼职

随着网络的普及,现在越来越多人在网络上赚钱了,网络上赚钱的方法有很多,总有一种适合你。小编为你推荐十种网络赚钱方式,一起来看看吧。 推荐十种网络赚钱方式 1、翻译 假如你自个的言语能力比...

手机可以黑入别人手机吗(怎么能黑别人的手机)

手机可以黑入别人手机吗(怎么能黑别人的手机)

本文导读目录: 1、怎么能黑了别人的手机 2、怎样黑别人的手机? 3、如何黑掉别人的手机? 4、能不能黑进别人手机?? 5、用手机黑进别人的手机? 6、怎么能黑进别人的手机看照片...

顶级黑客技术视频(黑客技术视频教程全集)

顶级黑客技术视频(黑客技术视频教程全集)

本文目录一览: 1、美国黑客 2、顶级黑客能厉害到什么程度?能在完全没信号的地方上网吗? 3、谁知道dameware怎么用阿,最好有视频的?谢谢 4、欧美黑客题材的电影有哪些推荐? 5...