java设计模式-目的及思想

1.2 设计模式的目的

某类问题的通用解决方案;

  • 代码重用性

相同功能的代码,不用多次编写

  • 可读性

编程规范,便于其他程序员阅读和理解

  • 可扩展性

新增功能时,非常的方便

  • 可靠性

新增功能时,对原功能无影响

  • 高内聚、低耦合

使程序高内聚、低耦合

1.3 设计模式核心思想

  • 找出应用中可能变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起;
  • 针对接口编程,而不是对实现编程;
  • 为了交互对象之间的松耦合设计而努力;

具体表现:
面向过程》面向对象》面向接口;
大段的代码》根据逻辑片段封装成多个方法;
对象之前的解耦》通过加一侧context类来关联不同的接口对象;

1.4 面向对象相关概念

  • 方法重载

一个类中可以有相同的方法名,但是这些方法不能有相同的参数类型和个数;
当参数类型和个数相同时,如果权限修饰符(public/protected等)或返回类型不同,也是认为非重载写法,编译会报错;

  • 方法重写

子类重写父类的方法,子类对象通过父类调用是,执行的仍然是子类的方法逻辑;

  • 封装

每个对象都包含它能进行操作所需要所有信息,这个特性称之为封装;

  • 继承

子类可以拥有父类所有特性,对象的解除代表了一种“is a”的关系,如果两个对象B和A可以描述为“B是A”,则表明B可以继承A;
抽象类与接口的区别:抽象类用于继承,代表的是对具体事物的抽象,而接口用于实现,代表的是对应拥有的特殊能力;
优点:所有子类的公共部分在父类,避免了代码重复;
缺点:继承破坏了包装,父类实现的细节暴露给了子类,子类与父类强耦合;
设计模式中尽量避免使用继承;

对象的继承关系实在编译时就定义好了,所以无法在运行时改变从父类继承的实现。子类的实现与它的父类有着紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化。当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类替换。这总依赖关系限制了灵活性并最终限制了复用性;

  • 多态

多态通过子类重写父类方法来实现,子类以父类的身份出现,执行的是特定子类重写的方法逻辑;

  • 面向对象三大特性

封装、继承、多态;

  • 抽象类

当类的方法仅申明不实现时,可以用abstract(抽象)来修饰,此时所在类也必须为抽象类;
抽象类中可以有已实现的方法,所有的抽象类方法必须被子类重写;
抽象类可以继承抽象类,不必重写父抽象类的抽象方法,子抽象类也可以定义抽象方法,子抽象类的子类必须实现所有父抽象类的所有抽象方法;
抽象类不能被实例化;

  • 接口

接口是对行为的抽象,接口可先行于对象,行为跨越不同类的对象。父类(抽象类)是对对象的抽象,而接口是对象需要拥有的行为能力;
一个类只能继承一个类,但是可以实现多个接口;

  • 泛型

泛型是占位符,这些占位符是类、结构、接口、方法所存储或使用的一个或多个类型的占位符;

你可能感兴趣的:(#,设计模式,java,设计模式,开发语言)