`
chelsea
  • 浏览: 119416 次
  • 来自: ...
社区版块
存档分类
最新评论

Modern C++ Design

    博客分类:
 
阅读更多

就像<<Ruminations on C++>>一样,<<Modern C++ Design>>关注的首先是Design,它明确的将这种设计命名为了“基于Policy的编程”,而不再用“模块化”、“封装变化”等泛泛的术语;其次是C++,核心是TypeList;如果<<Ruminations on C++>>是C++初创的十几年中Classic C++的设计指南的话,类似TypeList的思想则可能是最近几年和未来几年Modern C++的设计指南

1,policy

关键是将class分解为一组正交的行为;正确的分解出来之后,它叫policy也好,依赖注入也好,静态也好,动态也好,都无所谓,只需用手边的语言或工具将它们组织起来即可,良好的设计不依赖于它的名字,基于policy的编程和依赖注入基本是一回事,关键是你基于哪些policy,你注入啥

2,编译器:被忽略的计算机

编译器对代码所做的检查,即是编译器的接口,是很重要和有用的计算能力,所有编译期技术皆依赖于此;这些可利用的计算能力实际上包括所有C++语法规则: 类型系统、大小不能为0的数组、用到的类或函数必须有定义、sizeof()、模板实例化,等等

3,局部类

可用于在针对接口编程的系统中隐藏实现

4,Int2Type, Type2Type, TypeSelection....

额外的中间层

5,typelist

简直就是LISP,最简单却又最具表达力,一切拜抽象、递归所赐

template<T, U> struct TypeList{

typedef T Head;

typedef U Tail;

}

6,Command Pattern 与 Functional Programming

在非FP的编程语言中进行FP风格的编程时,关键的一点是状态和时序;Command对象封装了状态,也封装了真正eval的时机,使Command对象的客户可以进行FP风格的编程

7,仿函数与函数指针

有基本兼容的语法和语义,区别之一是当存在重载函数时,函数指针有歧义,此时可通过赋值或转型来选出感兴趣的那个重载函数

8,GP 与 OO

在泛型程序设计中,template实参对其相应形参的语法替换是很典型的情况;template的处理发生在编译之前,这让你得以在源码层级有所动作;OO与此并无不同,它的威力来自于“名称(name)”与“实值(value)”的后期(编译后)绑定;因此,OOP支持二进制组件形式的复用,GP支持源码层级的复用;与二进制码相比较,源码天生具有更多信息和更高级别,所以泛型编程支持更丰富的构件,但其代价是较弱的执行期动态性;你无法通过STL完成CORBA所能完成的功能,反之亦然,两种技术相互补充

分享到:
评论

相关推荐

    Modern C++ Design英文版.pdf

    Modern C++ Design英文版.pdf Modern C++ Design英文版.pdf是一本关于C++设计和编程的重要书籍,由Andrei Alexandrescu编写,Addison Wesley出版社出版,于2001年2月1日出版,共352页。本书探讨了C++设计和编程的新...

    modern c++ design

    《Modern C++ Design》是Andrei Alexandrescu撰写的一本关于C++泛型编程和设计模式应用的经典著作。这本书通过深入探讨C++模板技术,展示了如何利用这些技术实现高效且灵活的设计模式。书中介绍了多种创新技术,如...

    Modern C++ Design: Generic Programming and Design Patterns Applied

    Modern C++ Design: Generic Programming and Design Patterns Applied By Andrei Alexandrescu Publisher : Addison Wesley Pub Date : February 01, 2001 ISBN : 0-201-70431-5 ...

    Modern C++ Design(C++设计新思维)(简体中文---带目录)

    《Modern C++ Design》是Andrei Alexandrescu所著的一部探讨C++高级编程技巧与设计模式的著作。本书深入探讨了泛型编程和模板(template)在C++中的强大功能,并且强调了泛型编程与设计模式的结合应用。通过丰富的...

    Modern C++ Design 中文版英文版

    《Modern C++ Design》是Andrei Alexandrescu撰写的一本经典著作,主要探讨了C++中的泛型编程和设计模式的应用。这本书分为英文版和简体中文版,为读者提供了深入理解C++高级特性的宝贵资源。以下是该书涉及的一些...

    Modern C++ Design,英文原版

    《Modern C++ Design》是Andrei Alexandrescu撰写的一本经典书籍,专注于C++的现代设计模式和编程技术。这本书不仅对于深入理解C++的高级特性至关重要,而且对于提升C++代码的设计质量和效率有着深远的影响。它揭示...

    Modern C++ Design(中文版+英文版)

    《Modern C++ Design》是Andrei Alexandrescu撰写的一本经典C++设计模式与泛型编程的著作。这本书深入探讨了如何在C++中利用模板元编程和设计模式来实现高效、灵活且可复用的代码。以下是该书的一些关键知识点: 1....

    Modern C++ Design Generic Programming and Design Patterns Applied epub

    Modern C++ Design Generic Programming and Design Patterns Applied 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书

    modern c++ design中文版+英文版+完整书签

    《Modern C++ Design》是Andrei Alexandrescu撰写的一本经典书籍,该书详细探讨了C++中的泛型编程和设计模式。这本书分为中文版和英文版,为读者提供了全面理解现代C++设计理念的机会,同时附带完整的书签,方便读者...

    Modern c++ design 简体中文、繁体中文和英文

    Modern c++ design 简体中文、繁体中文和英文 现代c++的设计是一个重要的书。从根本上说,它展示的通用模式”或“模式”作为有力的模板创建可扩展的新方法设计c++——一种新的方法相结合,对模板和模式,你可能永远的...

    Modern C++ Design Generic Programming and Design Patterns Applied .pdf

    《Modern C++ Design: Generic Programming and Design Patterns Applied》是由 Andrei Alexandrescu 编写的一本关于 C++ 的高级技术书籍,该书由 Addison Wesley 出版社于 2001 年 2 月出版,ISBN 为 0-201-70431-5...

    modern c++ design(中文版)

    本书提出了泛型组件的概念,这是一种可重用的设计模板,可用来产生规范的C++代码。泛型组件还提供了从设计到代码的无缝转换,生成更能表达设计者最初意图的代码,并支持设计模式的重用——只需改动少量的代码。本书...

    Modern C++ Design.pdf

    Modern C++ Design.pdfModern C++ Design.pdfModern C++ Design.pdfModern C++ Design.pdf

    C++之Modern C++ Design.pdf

    ### Modern C++ Design: 关键知识点解析 #### 一、概览 《Modern C++ Design: Generic Programming and Design Patterns Applied》是由Andrei Alexandrescu所著的一本关于现代C++设计的重要著作。本书首次出版于...

    Modern C++ Design PDF格式

    现代c++的设计是一个重要的书。从根本上说,它展示的通用模式”或“模式”作为有力的模板创建可扩展的新方法设计c++——一种新的方法相结合,对模板和模式,你可能永远的梦想可能,不过是。如果你的工作是c++的设计和...

    Modern C++ Design Generic Programming and Desig

    《现代C++设计:泛型编程与设计模式应用》是一本由Andrei Alexandrescu编写的经典著作,它深入探讨了C++中的高级设计技术,尤其是泛型编程和设计模式的应用。这本书对于想要提升C++编程技能的专业人士来说,是一份不...

Global site tag (gtag.js) - Google Analytics