读大话设计模式

大话设计模式
类似于活字印刷:可维护,可复用,可拓展—-oop
让业务逻辑和界面逻辑分开

oop三大特性:继承、封装、多态

封装

每个对象包含他能进行操作所需要的所有信息,通过类的实例来实现

继承

“is-a”关系

1、子类有父类非private的属性和功能

2、子类有自己的属性和功能(可拓展)

3、子类可以以自己的方式实现父类的功能(方法重写)

多态

不同的对象可以执行相同的动作,但是要通过他们自己的实现代码来执行

1、子类以父类身份

2、子类在工作中以自己的方式实现

3、子类特有的属性和方法不能使用

virtual方法:在该成员的返回类型之前加上virtual,来使子类的实例完全接替来自父类的类成员。通常虚拟的是方法。

子类使用override:将父类实现替换为他自己的实现,即方法重写

对象的申明是父类,实例化的对象是子类

多态的原理:当方法被调用的时候,无论对象是否被转化为其父类,都只有位于对象继承链最末端的方法会被调用。也就是说,虚方法是按照其运行类型而非编译时类型进行动态调用的。

类和类之间的关系(uml类图)

继承、依赖、聚合、合成、关联、实现接口

抽象策略模式和简单工厂

不是类越多越好,累的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类

简单工厂模式:case0,case1,case2解决对象的创建问题

抽象策略模式:定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到算法的客户(封装变化点)

结合:简单工厂不一定是一个单独的类,可以和策略模式的context结合

(参数是一个字符串)

选择所用的具体实现的职责由客户端对象承担,并转给策略模式的context对象

通常字段是private,首字母小写or“_”;通常属性是public,首字母大写。

get和set就像封闭的房子的纱窗