zoukankan      html  css  js  c++  java
  • 条款38:通过复合塑模出has-a 关系或 is-impemented-in-terms-of关系

    1、什么是复合?

    复合是类型之间的一种关系,当某种类型的对象包含其它类型对象时,便是这种关系。

    2、复合描述的关系的细分

    (1)复合意味着两种关系
    • has-a 关系
    • is-impemented-in-terms-of关系
    (2)细分依据

    区分这两种关系的依据:根据程序处理的不同领域。

    (3)应用域和实现域
    • 应用域:客观的,描述现实世界的东西的类。(比如:一辆汽车,一条狗)。应用域类型之间的复合,描述的是has-a关系。
    • 实现域:人造的,描述实现细节的东西的类。(比如:缓冲区、互斥器、查找树)。实现域之间的复合,描述的是is-impemented-in-terms-of关系。

    3、在设计类时区分is-ahas-ais-impemented-in-terms-of的关系。

    (1)is-ahas-a 关系
    • is-ahas-a关系比较容易区分。
    (2)is-ais-impemented-in-terms-of关系的区分
    • 在设计类时,是设计成is-a关系,还是设计成is-impemented-in-terms-of关系,要搞清楚类基类的行为是否完全适用于派生类,如果是,那么两个类之间就是is-a关系,即public继承。
    • 如果基类的行为并不完全适用于派生类,那么,可能就要考虑is-impemented-in-terms-of关系,即复合关系。让需要的实现类,包含一个已经实现的类对象,这个对象帮助实现需要的实现类。
  • 相关阅读:
    centos 6.4 FTP安装和配置
    常用正则表达式集锦
    同一服务器部署多个tomcat时的端口号修改详情
    介绍linux下vi命令的使用
    CentOS下安装两个或多个Tomcat7
    tomcat解析之简单web服务器(图)
    吻你
    用C++语言开发Android程序 配置开发环境
    内地开源镜像网站
    Android SDK Android NDK Android Studio 官方下载地址
  • 原文地址:https://www.cnblogs.com/lasnitch/p/12764186.html
Copyright © 2011-2022 走看看