工厂方法
外观模式
观察者模式
策略模式
适配器模式
面向对象设计模式体现的就是抽象的思想
类是对对象的抽象
抽象类其实就是对类的抽象
接口其实就是对行为的抽象
对象是一个自包含实体,用一组可识别的特性和行为来标示,
类就是具有相同的属性和功能的对象的抽象的集合
实例就是一个真实的对象,实例化就是创建对象的过程,使用new关键字来创建。
方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型
属性是一个方法或一对方法,字段是存储类要满足其设计所需要的数据,字段是与类相关的变量
封装 每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装,因此对象不必依赖其他对象来完成自己的操作
封装的好处:1.良好的封装能减少耦合 2.类内部的实现可以自由地修改 3.类具有清晰的对外接口
继承
继承代表了一种is-a的关系
学习继承最好记住三句话 1.如果子类继承于父类,子类拥有父类非private的属性和功能,2子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能
3.子类还可以以自己的方式实现父类的功能(方法重写)
子类从它的父类中继承的成员有方法、域、属性、事件、索引指示器,但对于构造方法,有一些特殊,它不能被继承,智能被调用,对于调用父类成员,可以使用base关键字
不用继承的话,如果要修改功能,就必须在所有重复的方法中修改,代码越多,出错的可能就越大,而继承的优点是,继承使得所有子类公共的部分都放在了父类,使得代码得到了共享,这避免了重复,另外继承可使得修改或扩展继承而来的实现都较为容易。
继承是有缺点的,那就是父类变,则子类不得不变,继承会破坏包装,父类实现细节暴露给子类,增大两个类之间的耦合性
一方的改变会影响到另一方,这就是耦合性高的表现
什么时候使用继承,当两个类之间具备is-a的关系时,可以考虑使用,而当has-a则不能,手不能继承人,飞机不能继承飞机场
多态
抽象类
动物不能被实例化的,所以我们把实例化没有任何意义的父类改成抽象类,
抽象类需注意几点 : 1.抽象类不能实例化 2.抽象方法必须被子类重写的方法,不重写的话就没有意义了 3如果类中包含抽象方法的话,那么类就必须定义为抽象类,不论是否包含其他一般的方法
接口
接口名称前面要加I,接口中的方法或属性前面不能有修饰符,方法没有方法体
抽象类是对类的抽象,接口是对行为的抽象
敏捷开发的思想:通过重构改善既有代码的设计