当前位置: 首页 > news >正文

杭州设计制作网站餐饮品牌全案策划

杭州设计制作网站,餐饮品牌全案策划,网上做游戏任务赚钱的网站,沈阳网站设计外包6. 相关技术知识补充 6.1 不定参函数 在初学C语⾔的时候,我们都⽤过printf函数进⾏打印。其中printf函数就是⼀个不定参函数,在函数内部可以根据格式化字符串中格式化字符分别获取不同的参数进⾏数据的格式化。 ⽽这种不定参函数在实际的使⽤中也⾮常…

6. 相关技术知识补充

6.1 不定参函数

在初学C语⾔的时候,我们都⽤过printf函数进⾏打印。其中printf函数就是⼀个不定参函数,在函数内部可以根据格式化字符串中格式化字符分别获取不同的参数进⾏数据的格式化。

⽽这种不定参函数在实际的使⽤中也⾮常多⻅,在这⾥简单做⼀介绍:
不定参宏函数

#include <iostream>
#include <cstdarg>
#define LOG(fmt, ...) printf("[%s:%d] " fmt "\n", __FILE__, __LINE__, 
##__VA_ARGS__)
int main()
{LOG("%s-%s", "hello", "world");return 0;}

C⻛格不定参函数

#include <iostream>
#include <cstdarg>
void printNum(int n, ...) {va_list al;va_start(al, n);//让al指向n参数之后的第⼀个可变参数for (int i = 0; i < n; i++) {int num = va_arg(al, int);//从可变参数中取出⼀个整形参数std::cout << num << std::endl;}va_end(al);//清空可变参数列表--其实是将al置空
}
int main()
{printNum(3, 11,22,33);printNum(5, 44,55,66,77,88);return 0;
}
#include <iostream>
#include <cstdarg>
void myprintf(const char *fmt, ...) {//int vasprintf(char **strp, const char *fmt, va_list ap);char *res;va_list al;va_start(al, fmt);int len = vasprintf(&res, fmt, al);va_end(al);std::cout << res << std::endl;free(res);
}
int main()
{myprintf("%s-%d", "你好", "世界");return 0;
}

C++⻛格不定参函数


#include <iostream>
#include <cstdarg>
#include <memory>
#include <functional>
void xprintf()//参数包为空的特化
{std::cout << std::endl;
}
template<typename T, typename ...Args>//C++11可变参数包
void xprintf(const T &value, Args &&...args) {std::cout << value << " ";if ((sizeof ...(args)) > 0) {xprintf(std::forward<Args>(args)...);}else {xprintf();}
}
int main()
{xprintf("你好");xprintf("你好", 19);xprintf("你好", "我的心上人", 19);return 0;
}

6.2 设计模式

设计模式是前辈们对代码开发经验的总结,是解决特定问题的⼀系列套路。它不是语法规定,而是⼀套⽤来提高代码可复⽤性、可维护性、可读性、稳健性以及安全性的解决方案。
六大原则:
• 单一职责原则(Single Responsibility Principle)

1.类的职责应该单⼀,⼀个方法只做⼀件事。职责划分清晰了,每次改动到最⼩单位的⽅法或类。
2.使⽤建议:两个完全不⼀样的功能不应该放⼀个类中,⼀个类中应该是⼀组相关性很⾼的函数、数据的封装
3.⽤例:⽹络聊天:⽹络通信 & 聊天,应该分割成为⽹络通信类 & 聊天类

• 开闭原则(Open Closed Principle)

  1. 对扩展开放,对修改封闭
    2.使⽤建议:对软件实体的改动,最好⽤扩展⽽⾮修改的⽅式。
    3.⽤例:超时卖货:商品价格—不是修改商品的原来价格,⽽是新增促销价格。

• 里氏替换原则(Liskov Substitution Principle)

通俗点讲,就是只要父类能出现的地⽅,子类就可以出现,⽽且替换为子类也不会产⽣任何错误或异常。
1.在继承类时,务必重写父类中所有的⽅法,尤其需要注意父类的protected方法,子类尽量不要暴露自己的public⽅法供外界调⽤。
2.使⽤建议:子类必须完全实现父类的⽅法,孩子类可以有⾃⼰的个性。覆盖或实现⽗类的⽅法时,输⼊参数可以被放大,输出可以缩小
3.⽤例:跑步运动员类-会跑步,⼦类⻓跑运动员-会跑步且擅⻓⻓跑, ⼦类短跑运动员-会跑步且擅⻓短跑

• 依赖倒置原则(Dependence Inversion Principle)

1.高层模块不应该依赖低层模块,两者都应该依赖其抽象. 不可分割的原子逻辑就是低层模式,原子逻辑组装成的就是高层模块。
2.模块间依赖通过抽象(接口)发生,具体类之间不直接依赖
3.使⽤建议:每个类都尽量有抽象类,任何类都不应该从具体类派⽣。尽量不要重写基类的方法。结合里氏替换原则使⽤。
4.⽤例:奔驰车司机类–只能开奔驰; 司机类 – 给什么⻋,就开什么⻋; 开车的⼈:司机–依赖于抽象

迪米特法则(Law of Demeter),又叫“最少知道法则”

1.尽量减少对象之间的交互,从而减⼩类之间的耦合。⼀个对象应该对其他对象有最少的了解。
2.对类的低耦合提出了明确的要求:
只和直接的朋友交流, 朋友之间也是有距离的。⾃⼰的就是⾃⼰的(如果⼀个⽅法放在本类中,既不增加类间关系,也对本类不产⽣负⾯影响,那就放置在本类中)。
3.用例:⽼师让班⻓点名–⽼师给班⻓⼀个名单,班⻓完成点名勾选,返回结果,⽽不是班⻓点名,⽼师勾选

• 接口隔离原则(Interface Segregation Principle);

1.客户端不应该依赖它不需要的接⼝,类间的依赖关系应该建立在最小的接⼝上
2.使用建议:接⼝设计尽量精简单⼀,但是不要对外暴露没有实际意义的接口。
3.⽤例:修改密码,不应该提供修改⽤户信息接⼝,⽽就是单⼀的最⼩修改密码接口,更不要暴露数据库操作

从整体上来理解六⼤设计原则,可以简要的概括为⼀句话,⽤抽象构建框架,⽤实现扩展细节,具体到每⼀条设计原则,则对应⼀条注意事项:

• 单⼀职责原则告诉我们实现类要职责单⼀;
• ⾥⽒替换原则告诉我们不要破坏继承体系;
• 依赖倒置原则告诉我们要⾯向接⼝编程;
• 接口隔离原则告诉我们在设计接⼝的时候要精简单⼀;
• 迪米特法则告诉我们要降低耦合;
• 开闭原则是总纲,告诉我们要对扩展开放,对修改关闭。

http://www.ds6.com.cn/news/59607.html

相关文章:

  • 南通网站开发百度网站排名关键词整站优化
  • 大学城网站开发公司正版seo搜索引擎
  • 婚庆公司报价套餐贵州seo和网络推广
  • WordPress添加图片轮流播放网站怎么优化seo
  • 企业网站定制案例百度搜索推广操作简要流程
  • 如何仿做网站软文写作技巧
  • 网上有兼职做数据网站有哪些推广平台和渠道
  • 网站后期维护是做什么谷歌外贸
  • 淄博桓台网站建设公司百度seo工作室
  • 做视频网站真的挣钱吗东莞免费网站建设网络营销
  • xx市院门户网站建设方案推广网络营销外包公司
  • wordpress怎么安装到服务器学seo优化
  • 长沙建设工程备案合同查询网站东莞seo建站
  • 网站制作哪家专业北京sem
  • 广西省住房和城乡建设厅网站优化快速排名教程
  • 企业网站做速优化排名万象网络营销经典成功案例
  • 提供温州手机网站制作哪家好西安抖音seo
  • 衡水做wap网站的公司深圳龙岗区优化防控措施
  • 网站建设与制作报价seo教程培训班
  • madara wordpress关键词优化推广排名多少钱
  • 修改网站模板详解找培训机构的网站
  • 专门做美食的网站6百度搜索引擎算法
  • 河源网站制作郑州seo优化培训
  • 网站建设硬件设置网上营销方式和方法
  • 响应式网站有什么弊端代做百度首页排名
  • 苏州地区网站制作网站seo专员
  • 服装电子商务的网站建设百度收录推广
  • 独立做网站需要学什么宁波网站优化公司价格
  • 学校网站群建设必要企业宣传标语
  • 公司做网站一般吸引人的营销标题