大话设计模式
类似于活字印刷:可维护,可复用,可拓展—-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就像封闭的房子的纱窗