1.2 设计模式的目的
某类问题的通用解决方案;
- 代码重用性
相同功能的代码,不用多次编写
- 可读性
编程规范,便于其他程序员阅读和理解
- 可扩展性
新增功能时,非常的方便
- 可靠性
新增功能时,对原功能无影响
- 高内聚、低耦合
使程序高内聚、低耦合
1.3 设计模式核心思想
- 找出应用中可能变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起;
- 针对接口编程,而不是对实现编程;
- 为了交互对象之间的松耦合设计而努力;
具体表现:
面向过程》面向对象》面向接口;
大段的代码》根据逻辑片段封装成多个方法;
对象之前的解耦》通过加一侧context类来关联不同的接口对象;
1.4 面向对象相关概念
- 方法重载
一个类中可以有相同的方法名,但是这些方法不能有相同的参数类型和个数;
当参数类型和个数相同时,如果权限修饰符(public/protected等)或返回类型不同,也是认为非重载写法,编译会报错;
- 方法重写
子类重写父类的方法,子类对象通过父类调用是,执行的仍然是子类的方法逻辑;
- 封装
每个对象都包含它能进行操作所需要所有信息,这个特性称之为封装;
- 继承
子类可以拥有父类所有特性,对象的解除代表了一种“is a”的关系,如果两个对象B和A可以描述为“B是A”,则表明B可以继承A;
抽象类与接口的区别:抽象类用于继承,代表的是对具体事物的抽象,而接口用于实现,代表的是对应拥有的特殊能力;
优点:所有子类的公共部分在父类,避免了代码重复;
缺点:继承破坏了包装,父类实现的细节暴露给了子类,子类与父类强耦合;
设计模式中尽量避免使用继承;
对象的继承关系实在编译时就定义好了,所以无法在运行时改变从父类继承的实现。子类的实现与它的父类有着紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化。当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类替换。这总依赖关系限制了灵活性并最终限制了复用性;
- 多态
多态通过子类重写父类方法来实现,子类以父类的身份出现,执行的是特定子类重写的方法逻辑;
- 面向对象三大特性
封装、继承、多态;
- 抽象类
当类的方法仅申明不实现时,可以用abstract(抽象)来修饰,此时所在类也必须为抽象类;
抽象类中可以有已实现的方法,所有的抽象类方法必须被子类重写;
抽象类可以继承抽象类,不必重写父抽象类的抽象方法,子抽象类也可以定义抽象方法,子抽象类的子类必须实现所有父抽象类的所有抽象方法;
抽象类不能被实例化;
- 接口
接口是对行为的抽象,接口可先行于对象,行为跨越不同类的对象。父类(抽象类)是对对象的抽象,而接口是对象需要拥有的行为能力;
一个类只能继承一个类,但是可以实现多个接口;文章来源:https://www.toymoban.com/news/detail-475544.html
- 泛型
泛型是占位符,这些占位符是类、结构、接口、方法所存储或使用的一个或多个类型的占位符;文章来源地址https://www.toymoban.com/news/detail-475544.html
到了这里,关于java设计模式-目的及思想的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!