菜单

法天象而应四时

2019年3月29日 - 生物科技

架空不仅仅是软件领域,在有灵性的生物中都有抽象;

抽象不仅仅是OO的,非OO语言也有抽象;

空泛的级别:

类级别的架空–类、抽象类、接口;

办法、函数级其余用空想来安慰自己–泛型、委托、Lambda表明式;

组件级别的架空–业务组件,数据访问组件,UI控件;

涸泽而渔方案的充饥画饼-设计方式;

系统级别的悬空–AOP,SOA

应用级别的虚幻-应用框架;

1,物以类分,人以群聚–类,抽象类,接口的关系。

将东西分类(class),是我们认识世界的一种关键方法,也是一种主要的思考格局,所以把大家周围的对象(object)划分成叁个个的类,将大类再

细分成小类,例如由分子到原子,由原子到电子。所以,“类”是“对象”的抽象,是大家认识世界的“一流抽象”。

或多或少类还足以再抽象吗?

当然能够,将类的一点共同特征尤其进展抽象正是抽象类(abstract
class),咱们举2个例证表明它们中间的涉及:

类是足以被实例化的,例如

class 人

{

  string 名字;

}

前天有1个誉为张三的人,大家这么表示:

生物科技,人 man=new 人();

man.名字=”张三”;

此间,“人”这一个类被实例化成“张三”了。

作者们今日发展寻找“人”归属与那一类,很当然,“人”类属于“动物”类,咱们修改一下“人”类的定义,让它继续2个父类“动物”类:

class 人:动物

{

}

题材来了,大家能够用“动物”类实例化出“张三”来吧?大家逆向思维一下,说到张三,大家就足以直接的想到她是一位,而不是先想到他是二个动物,

再说,说到动物,大家想到的是猫、狗、狮子老虎之类的东西,鲜明,大家无法用“动物”类实例化张三,我们说“动物”类是空虚的,它不是3个有血有肉的类,所以大家的动物类应该如此定义:

abstract class 动物

{…}

今昔我们来观望一下“动物”类具有哪些措施,直接用代码表明:

abstract class 动物

{

void 吃东西();

void 睡觉();

void 叫声();

}

class 狗:动物

{…}

class 猫:动物

{…}

如此大家的狗 dog 和 猫 cat它们都会吃东西,睡觉,并发生叫声了:

狗 dog=new 狗();

猫 cat=new 猫();

dog.叫声();//汪汪

cat.叫声();//咪咪

当今看起来都没有毛病,看来咱们的抽象类工作的很好,有一九歌题来了,大家买了一只玩具狗,它也会“汪汪”,大家能够这么写吧?

class 玩具狗:动物

{…}

明朗下边那样写是荒唐的,玩具狗不是动物,但它的“叫声”怎么处理吧?

今昔,大家须求对抽象类进一步抽象了,大家只须求它原先的一有个别东西,例如,大家只须要把动物抽象类中的“叫声”抽象成

二个接口,况且叫它“叫声接口”,对原有的代码进行以下革新:

interface 叫声接口

{

void 叫声();

}

class 动物:叫声接口

{…}

class 玩具狗:叫声接口

{…}

玩具狗 dog1=new 玩具狗();

dog1.叫声();


================

到那边,大家成功了对我们世界的“初级抽象”,至于更尖端的空洞,我们下篇再说。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图