学习日记之模板方法模式和 Effective C++

学习日记之模板方法模式和 Effective C++

大家好,又见面了,我是全栈君。

模板方法模式:

定义:定义一个操作中的算法的骨架。而将一些步骤延伸到子类中。模板方法使得子类能够不改变算法的结构就可以重定义该算法的某些特定步骤。

(1),用了继承,而且肯定这个继承有意义的情况下。就应该要成为子类的模板,所以反复的代码都应该提升到父类中,而不是让每一个子类去反复。

(2)。当我们要完毕某一个细节层次一致的过程或者一系列步骤,但其个别步骤在更具体的层次上的实现可能不同一时候。我们通常考虑模板方法模式来处理。

(3),模板方法模式通过把不变的行为搬移到超类。去除子类中的反复代码来体现它的优势。

(4)。党不变的和可变的行为在方法的子类实现中混合在一起的时候。不变的行为就会在子类中反复出现。我们通过模板方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱反复的不变形为的纠缠。

Effective C++:

1:设计 class 宛如设计 type

Class的设计就是 type 的设计。在定义一个新的 type 之前,请确定你已经考虑好下面覆盖的讨论主题。(Oh , my god ! )

(1)。新类型的对象该怎样创建和销毁?

(2)。对象的初始化和对象的赋值有什么样的区别?

(3),新类型的对象假设被 passed by value 。意味着什么?

(4),什么是新类型的合法值?

(5),你的新类型须要配合某个继承图系(inheritance graph)吗?

(6),你的新类型须要什么样的转换?

(7),什么样的操作符和函数对此新类型而言是合理的?

(8)。什么样的标准函数应该被驳回?

(9),谁该取用新类型的成员?

(10),什么是新类型的“未声明接口?

(11),你的新类型有多么一般化?

(12),你真的须要一个新类型么?

2:宁以 pass-by-reference-to-const 替换 pass-by-value

(1),尽量以 pass-by-reference-to-const 替换 pass-by-value 。前者通常比較高效,而且能够避免分割问题 (slicing problem)。

(2)。以上规则并不适用内置类型,以及 STL 的迭代器和函数对象。对他们而言,往往 pass-by-value 比較合适。

3:必须返回对象时,别妄想返回其 reference

(1)。绝不要返回 pointer 或 reference 指向一个 local stack 对象,或返回 reference 指向一个 heap-allocated 对象,或返回 pointer 或 reference 指向一个 local static 对象而有可能同一时候须要多个这种对象。单线程中合理返回 reference 指向一个 local static 对象。可參考单例模式。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116038.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux 中 tar.xz 的解压命令

    linux 中 tar.xz 的解压命令对于tar.xz结尾的压缩文件,解压有两种方式:可以先将外层用xz解压方式解压,,然后里层用tar解压方式解压:$xz-d*****.tar.xz$tar-xvf*****.tar2.直接使用如下命令解压:$tarxvJf***.tar.xz…

    2022年5月13日
    73
  • Jquery 标签赋值问题

    Jquery 标签赋值问题

    2021年9月16日
    50
  • Java中File使用–创建文件「建议收藏」

    Java中File使用–创建文件「建议收藏」1.错误示范1,输出的是创建文件夹D:\filepath\test\test.txt。publicclassFileTest{publicstaticvoidmain(String[]args)throwsIOException{StringfileName=”test.txt”;FiletestFile=new…

    2022年6月23日
    22
  • s一般怎么称呼自己的m_“老公、老婆、亲爱的”?快来围观明星怎么称呼自己的另一半!…

    s一般怎么称呼自己的m_“老公、老婆、亲爱的”?快来围观明星怎么称呼自己的另一半!…每个夫妻相处方法不一样,大家怎么称呼习惯就怎么来,官方上会跟别人介绍,我的爱人,我的对象,我的老公,私下也会亲昵的叫baby。今天我们就来说说明星们是怎么称呼自己的另一半的!黄晓明和baby,在家里的时侯,黄晓明就叫baby为小孩儿,听起来是否是就有种自愿吃狗粮的感到?大家都知道,黄晓明是很喜好baby的,对baby也很宠爱,大家说baby演技欠好,黄晓明还赶忙着帮baby措辞。小编记得当初他们两…

    2022年6月23日
    80
  • Java线程中的wait、notify和notifyAll解析

    Java线程中的wait、notify和notifyAll解析顾客去包子铺买包子,告知老板自身需求后,进入等待(调用wait()方法)老板处理的过程,此时顾客的状态为WAITING,老板做好包子后,告知(调用notify()方法)顾客包子做好了。?线程间的通信的主要思想是生产者消费者机制。

    2022年9月8日
    0
  • 汇编语言中的标志位:CF、PF、AF、ZF、SF、TF、IF、DF、OF

    汇编语言中的标志位:CF、PF、AF、ZF、SF、TF、IF、DF、OF**CF:**进位标志位。在无符号运算时,记录了运算结果的最高有效位向更高位的进位值或从更高位借位,产生进位或借位时CF=1,否则CF=0;**PF:**奇偶标志位。相关指令执行后结果所有bit中1的个数为偶数,那么PF=1,1的个数为奇数则PF=0;**AF:**辅助进位标志位。运算过程中看最后四位,不论长度为多少。最后四位向前有进位或者借位,AF=1,否则AF=0;**ZF:**零标志位…

    2022年7月27日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号