
设计模式--Java
文章平均质量分 66
K胖
这个作者很懒,什么都没留下…
展开
-
(六)组合与继承
文章目录一、继承二、组合三、"组合优于继承,多用组合少用继承"原则3.1、原因四、何时选择继承?何时选择组合? 一、继承 【1】继承是面向对象的四大特性之一,用来表示类之间的 is-a (是一个)关系,可以解决代码复用的问题 【2】虽然继承有诸多作用,但继承层次过深、过复杂,也会影响到代码的可维护性 【3】继承最大的问题就在于:继承层次过深、继承关系过于复杂会影响到代码的可读性和可维护性;另一方面,这也破坏了类的封装特性,将父类的实现细节暴露给了子类。子类的实现依赖父类的实现,两者高度耦合,一旦父类代码修改原创 2021-12-19 17:58:38 · 403 阅读 · 0 评论 -
(五)抽象类与接口
一、定义 【1】抽象类实际上就是类,只不过是一种特殊的类,这种类不能被实例化为对象,只能被子类继承;继承关系是一种 is-a 的关系,那抽象类既然属于类,也表示一种 is-a 的关系。 【2】接口泛指供别人调用的方法或者函数,接口表示一种 has-a 关系,表示具有某些功能。对于接口,有一个更加形象的叫法,那就是协议(contract) 【3】从类的继承层次上来看,抽象类是一种自下而上的设计思路,先有子类的代码重复,然后再抽象成上层的父类(也就是抽象类) 【4】而接口正好相反,它是一种自上而下的设计思路。原创 2021-12-19 11:32:39 · 333 阅读 · 0 评论 -
(四)面向对象编程与面向过程编程
一、面向对象编程 【1】面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石 【2】面向对象风格的代码被组织成一组类,方法和数据结构被绑定 一起,定义在类中 【3】面向对象编程是以类为思考对象。在进行面向对象编程的时候,我们并不是一上来就去思考,如何将复杂的流程拆解为一个一个方法,而是采用曲线救国的策略,先去思考如何给业务建模,如何将需求翻译为类,如何给类之间建立交互关系,而完成这些工作完全不需要考虑错综复杂的处理流程;当我们原创 2021-12-16 23:37:32 · 557 阅读 · 0 评论 -
(三)面向对象的三大特性
一、封装 【1】封装从字面上来理解就是包装的意思,专业点就是信息隐藏或数据访问保护。是指利用抽象数据类型(对象类型)将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体(对象),数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系 【2】系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节,但可以通过该对象对外的提供的接口来访问该对象 二、继承 三、多态 四、抽象 ...原创 2021-12-14 14:00:40 · 317 阅读 · 0 评论 -
(二)面向对象的一些概念
一、面向对象编程 【1】面向对象编程的英文缩写是 OOP,全称是 Object Oriented Programming 【2】面向对象编程中有两个非常重要、非常基础的概念,那就是类(class)和对象(object) - 对象是类的实例,类是一个抽象的东西 【3】面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石 【4】OOP首先是一种设计思想,非仅仅是编码方式 【5】OOP有且只有一个价值:应对需求的变化,哪里的需求有变原创 2021-12-12 01:23:04 · 403 阅读 · 0 评论 -
(一)为什么学习设计模式
一、应对面试中的设计模式问题 二、告别写被人吐槽的烂代码 三、提高复杂代码或者复杂业务的设计和开发能力 四、让读源码、学框架事半功倍 五、为职场发展做铺垫原创 2021-12-06 13:25:43 · 74 阅读 · 0 评论 -
设计模式之简单工厂模式与策略模式
一、简单工厂模式 概述:定义一个工厂类,它可以根据参数的不同返回不同的实例 类型:创建型-----通俗理解就是创建出一个对象的类型,该类型一定会创建出对象的 注意点:被创建的实例通常都具有共同的父类 做法: 【1】定义一个抽象的对象 【2】定义抽象对象的具体实现子类 【3】定义一个创建对象的工厂 【1】定义一个抽象的对象 //汽车:抽象产品 public abstract class Car { public String getCarName(); } 【2】定义抽象对象的具体实现子类 //奔驰原创 2021-11-24 21:41:08 · 903 阅读 · 0 评论