• "Isa"与"Hasa"


    "Is-a”与"Has-a"的关系。。。"Is-a”代表类之间或类与接口的继承关系,比如猫是动物,狗也是动物,都继承了动物的共同特性,再用OO语言实现时,应将猫和狗定义成两种类,均继承动物类。"Has-a"代表的是对象和他成员的从属关系,同一种类的对象,通过它们的属性的不同值来区别。比如张三和李四都是人,但他们的名字不一样,可以以此区分这两个具体的人。名字应该作为人的成员变量。如果将名字叫“张三”的人和名字叫“李四”的人分别定义成两个类,均继承“人”这个类,显然是不合理的。


    装饰模式中有出现两者同时用的情况,一个类在接口上表现为is-a的继承关系,但在实现上又表现为has-a的组合关系,简要代码:

    abstract class Decorator : Component//---Decorator “is-a” Component 
    {
        
    protected Component component;//---Decorator “has-a” Component 

        
    public void SetComponent(Component component)
        {
            
    this.component = component;
        }

        
    public override void Operation()
        {
            
    if (component != null)
            {
                component.Operation();
            }
        }
    }
  • 相关阅读:
    ADO.NET
    VS调SQL中存储过程实现登陆
    摇奖
    面向对象、类、字段、属性、构造函数、析构函数
    打架
    2012/7/26Extjs笔记_Ext.grid.EditorGridPanel
    2012/7/30sql2005学习笔记
    SVN版本冲突解决办法(非加锁)
    2012/7/30sqlserver2005学习随笔
    struts环境搭建
  • 原文地址:https://www.cnblogs.com/zxjyuan/p/1621615.html
Copyright © 2020-2023  润新知