zoukankan      html  css  js  c++  java
  • 学习BoolanC++笔记_03(C++面向对象高级编程(上)第三周)

    作者: ayaoko

    出处: http://www.cnblogs.com/fyc006/>

    关于作者:小可才疏学浅还请多多赐教!

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(270469391@qq.com)咨询.

    (可参考23种设计模式深入学习 A基类,B派生类)
    Composition(复合)
    Composition 复合 has-a
    Adapter
    本类A只是容器,包含已经实现的多功能的类B,A可选择性包含部分B中需要的部分.
    构造由内而外
    Container的构造函数首先调用Component的default构造函数,然后才执行自己。
    Container::Container(...):Component(){...};
    析构由外而内
    Container的析构函数首先执行自己,然后才调用Component的析构函数。
    Container::~Container(...){...~Component()};
     
     
    Delegation(委托).Composition by reference.
    Handle/Body 
    pImpl
    本类A只是容器,指针指向已经实现的多功能的类B,A可选择性指向部分B中需要的部分.(创建周期不同步,编译防火墙)
     
     
    reference counting(共享的方式)
     
     
     
    Inheritance(继承)表示is-a
     构造由内而外
    Derived的构造函数首先调用Base的default构造函数,然后才执行自己。
    Derived::Derived(...):Base(){...};
    析构由外而内
    Derived的析构函数首先执行自己,然后才调用Base的析构函数。
    Derived::~Derived(...){...~Base()};
    (Base class 的dtor必须是virtual,否则会出现undefined behavior)
     
     
    Inheritance(继承)with virtual functions(虚函数) 
    non-virtual函數:你不希望derivedclass重新定義(override,覆寫)它·
    virtual    函數:你希望derivedclass重新定義(override,覆寫)它,且你對它已有默認定義。
    purevirtual函數:你希望derivedclass一定要重新定義(override覆寫)它,你對它没有默認定義。
     
     
    Inheritance继承with virtual
    Template Method
    Application framework
     
    Inheritance+Composition 关系下的构造和析构
     
     
    Delegation(委托)+Inheritance(继承)
    Observer
    1,A类有委托容器。
    2,A类的容器包含一个可以继承的B类。
    3,B类可扩展。
    4,A类可控制,让B类有需求的来注册,注销。
    Composite
    1,B类有个容器,可以放左边,可以放右边。
    2,搞A类做基类,让左右两边都继承。
    3,B类的容器指针指向A类,B类Add控制放左还是放右。
     
    Prototype(Design Patterns Explained Simply)
    1,A类创建未知的子类,
    2,让B类创建静态自己,
    3,B类构造是private,原型放到A类的容器(add),
    4, B类clone来实现挂到A类框架,扩展A类(框架)使用。
     
     
     
    作者:ayaoko
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    How Tomcat Works(十一)
    How Tomcat Works(十)
    How Tomcat Works(九)
    How Tomcat Works(八)
    How Tomcat Works(七)
    HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
    dl,dt,dd标记在网页中要充分利用
    JavaScript 操作 Cookie
    通过JSONP实现完美跨域
    JS操作JSON总结
  • 原文地址:https://www.cnblogs.com/fyc006/p/6362192.html
Copyright © 2011-2022 走看看