展示型网站解决方案,宁波外贸网站推广优化,360建筑网中级机械工程师招聘,做网站资源《大话设计模式》 序 为什么要学设计模式第0章 面向对象基础什么是对象#xff1f;什么是类#xff1f;什么是构造方法#xff1f;什么是重载#xff1f;属性与字段有什么区别#xff1f;什么是封装#xff1f;什么是继承#xff1f;什么是多态#xff1f;抽象类的目的… 《大话设计模式》 序 为什么要学设计模式第0章 面向对象基础什么是对象什么是类什么是构造方法什么是重载属性与字段有什么区别什么是封装什么是继承什么是多态抽象类的目的和特点是什么什么是接口抽象类与接口的区别什么是 ArrayList它的优缺点是什么什么是泛型 第1章 简单工厂模式封装思想的实现继承思想的实现简单工厂模式多态思想的实现UML类图的六种箭头 第2章 策略模式持续更新中... 序 为什么要学设计模式
重要的不是你将来会不会用到这些模式而是通过这些模式让你找到“封装变化”、“对象间松散耦合”、“针对接口编程的感觉”从而设计出易维护、易拓展、易复用、灵活性好的程序。
第0章 面向对象基础
什么是对象
一切事物皆为对象。对象就是可以看到、感觉到、听到、触摸到、尝到或闻到的东西。准确地说对象是一个自包含的实体用一组可识别的特性和行为来标识。
什么是类
类就是具有相同的属性和功能的对象的抽象的集合。
什么是构造方法
又叫构造函数其实就是对类进行初始化。构造方法与类同名无返回值不需要 void在 new 的时候被调用。
什么是重载
重载可在不改变原方法的基础上新增功能。要求方法名相同参数类型或个数不同。
属性与字段有什么区别
属性是一个或一对方法即属性适合于以字段的方式使用方法调用的场合
字段是存储类要满足其设计所需要的数据字段是与类相关的变量
如shoutNum 是私有的字段对应地ShoutNum 是共有的对外属性。
什么是封装 假设我们的房子是一个类的实例室内的装饰只能供住户看到外人无法透过墙看到内部的细节但与此同时房子会安置门窗相当于对外提供接口可以访问内部的数据。 每个对象都包含它能进行操作所需要的所有信息这个特性称为封装。它的好处有
解耦 把属于一个类的信息提取出来。就好比居委会的公共电视放在你家别人家都没有邻居都来你家看电视。你肯定不想这样我们就应该把公共电视放在居委会。 类的内部实现可以自由修改 类具有清晰的对外接口
什么是继承
继承定义了类如何相互关联共享特性。“is a” 的关系继承的特点
子类拥有父类非 private 的属性和功能子类拥有自己的属性和功能即可以拓展子类可以以自己的方法实现父类的功能方法重写
什么是多态
多态表示不同的对象可以执行相同的动作但通过自己的实现代码来执行。特点 子类以父类的身份出现 Animal cat new Cat(); 子类在工作时以自己的方式实现 子类以父类的身份出现时子类特有的属性和方法不能使用。
还是没悟
抽象类的目的和特点是什么
抽象类应该拥有尽可能多的共同代码拥有尽可能少的数据。
抽象类不能被实例化抽象方法是必须被子类重写的方法如果类中包含抽象方法那么类就必须定义为抽象类
什么是接口
接口是把隐式公共方法和属性组合起来以封装特定功能的一个集合。
不能实例化没有构造方法没有字段没有修饰符不能声明为虚拟或静态
抽象类与接口的区别
抽象类是对类整体的抽象接口是对行为局部的抽象抽象类是自底向上抽象出来的接口是自顶向下设计出来的
什么是 ArrayList它的优缺点是什么
ArrayList 是包 java.util.ArrayList 下的一部分使用大小可按需动态增加的数组实现 Collection 接口。
优点
大小按需动态增加初始为 0随意添加或移除某一范围元素
缺点
ArrayList 类型不安全在它眼中所有元素都是 Object对于不同类型的元素编译时没问题运行时报错对于任意类型都需要装箱拆箱造成性能损耗 装箱 int i 123;
Object o (Object)i;拆箱 o 123;
int i (int)o;什么是泛型
泛型是具有占位符类型参数的类、结构、接口和方法。用法是在 ArrayList 后面加上二者在功能上是一样的不同点在于泛型在声明和实例化时都需要指定其内部项的数据或对象类型。这就避免了上面提到的安全问题和性能损耗。
第1章 简单工厂模式
这是一个逐步优化的过程 封装思想的实现
业务逻辑与界面逻辑分开降低耦合 继承思想的实现
修改任一算法不需要提供其他算法的代码 简单工厂模式多态思想的实现
明确工厂要实例化的对象 UML类图的六种箭头 依赖动物 依赖 氧气
abstract class Animal {public metabolism(Oxygen oxygen) { // 新陈代谢}
}关联企鹅 关联 气候
含义“了解”企鹅了解气候
class Penguin {private Climate climate;
}泛化鸟 泛化 动物
class Brid extends Animal {}实现大雁 实现 飞翔
class WideGoose implements IFly {}聚合雁群 聚合 大雁
含义弱的“has a”雁群包含大雁但大雁不是雁群的一部分理解不了看下面的组合就明白了
与图中箭头方向相反即空心菱形在雁群一侧
class WideGooseAggregate {private WideGoose[] arrayWideGoose;
}组合鸟 组合 翅膀
含义强的“has a”
class Bird {private Wing wing;public Bird() {// Bird初始化时Wing同时生成wing new Wing();}
}第2章 策略模式
持续更新中…