首页 >>  正文

子类可以实现多个接口

来源:baiyundou.net   日期:2024-09-21

作者:小码农阿顺

前言

不知道现在程序员面试还会不会经常被面试官提问设计模式方面的问题,在我以前毕业的时候,几乎所有大厂的面试题都离不开设计模式。从我多年的工作经验来看,很多程序员编码的时候都喜欢用现成的开源框架,很少有人会主动去关注和学习框架背后涉及的设计模式,所以很多普通码农工作一段时间后,很容易进入事业发展瓶颈期,因为缺乏对基础知识的掌握,没有厚积,难有薄发!

今天我刚好收到双十一购买的《大话设计模式》,这本书我以前上大学的时候就已经看过了,现在出版的是溢彩加强版,图文并茂,而且配图都是好看的彩色图片,阅读起来更加有趣、更加生动!

为什么要学设计模式?

在 Java 编程中,设计模式是一个比较重要的概念,它针对某一类问题提出了一种经过验证的、可重用的处理方法。设计模式可以帮助程序员解决经常遇到的设计问题,提高代码的质量、可重用性和可维护性。它遵循面向对象编程的原则,将代码组织成模块化的组件,使代码更容易理解和扩展。学习设计模式有助于提高代码的可重用性、可维护性和扩展性,同时提高代码的质量,进而提高程序员的职业素养,对个人职业发展和团队协作都有积极影响!不管你是前端开发人员还是后端开发人员,我认为都很有必要学学设计模式。

设计模式有哪几种类型?

设计模式主要分为三类:创建型、结构型和行为型,常见的设计模式主要有23种。

创建型模式:这类模式主要用于解决对象的创建过程,包括以下几种类型:

  • 单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。

  • 工厂方法模式(Factory Method):定义一个创建对象的接口,但由子类决定需要实例化哪一种类。

  • 抽象工厂模式(Abstract Factory):提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

  • 建造者模式(Builder):将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。

原型模式(Prototype):通过复制现有的实例来创建新的实例,而不是通过构造函数创建。

  • 结构型模式:这类模式主要用于解决类和对象之间的组合关系,包括以下几种类型:

  • 适配器模式(Adapter):将一个类的接口转换成客户期望的另一个接口。

  • 桥接模式(Bridge):将抽象部分与实现部分分离,使它们可以独立地变化。

  • 组合模式(Composite):将对象组合成树形结构以表示“部分 - 整体”的层次结构。

  • 装饰者模式(Decorator):动态地给一个对象添加额外的职责。

  • 外观模式(Facade):为一组复杂的子系统提供一个统一的接口。

  • 享元模式(Flyweight):运用共享技术有效地支持大量细粒度的对象。

  • 代理模式(Proxy):为其他对象提供一个代理以控制对这个对象的访问。

行为型模式:这类模式主要用于解决对象之间的通信问题,包括以下几种类型:

  • 职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免了请求发送者和接收者之间的耦合关系。

  • 命令模式(Command):将请求封装为一个对象,从而可以使用不同的请求对客户进行参数化。

  • 解释器模式(Interpreter):为语言创建解释器,用于解释该语言中的句子。

  • 迭代器模式(Iterator):提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露其内部的表示。

  • 中介者模式(Mediator):定义一个对象来封装一组对象之间的交互,使得对象之间不需要显式地相互引用。

  • 备忘录模式(Memento):捕获一个对象的内部状态,并在该对象之外保存这个状态,以便稍后恢复它。

  • 观察者模式(Observer):当一个对象的状态发生改变时,自动通知所有依赖于它的对象。

  • 状态模式(State):允许对象在内部状态改变时改变其行为。

  • 策略模式(Strategy):定义一系列算法,将每一个算法封装起来,使它们可以相互替换。

  • 模板方法模式(Template Method):在一个方法中定义一个算法的骨架,将一些步骤延迟到子类中实现。

  • 访问者模式(Visitor):表示一个作用于某对象结构中的各元素的操作。

关于本书

这本书以情景对话的形式,用多个小故事来讲解设计模式的原理和应用,使得抽象的设计模式概念变得形象生动,易于理解。学习真的就是需要结合我们生活中常见的案例来加以解释说明,这样我们学起来印象会更加深刻:哦,原来这个设计可以解决我们生活中遇到的某个问题啊!

而且书中增加了大量的彩色UML结构图和趣味图片,读起来也不会觉得很枯燥晦涩。UML结构图也是编程人员必备的基础知识之一,通过它可以快速清晰的理解系统的结构关系和逻辑关系,提升软件设计能力。

这本书的改版,内容比我大学时候读的版本丰富了很多,而且印刷制作精美,可以带来更好的阅读体验,偶尔翻翻都可以带来新的感受,常读常新!我觉得即使不看,摆在书桌上也是很好的点缀哈哈哈!

查看文章精彩评论,请前往什么值得买进行阅读互动

","gnid":"923c4d52afa08b77d","img_data":[{"flag":2,"img":[{"desc":"","height":"655","title":"","url":"https://p0.ssl.img.360kuai.com/t01087da61d6df64259.jpg","width":"498"},{"desc":"","height":"496","title":"","url":"https://p0.ssl.img.360kuai.com/t0193088c52298c0145.jpg","width":"367"},{"desc":"","height":"495","title":"","url":"https://p0.ssl.img.360kuai.com/t01876d3bd61bcc56d4.jpg","width":"659"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"pika","pub_time":1700276482000,"pure":"","rawurl":"http://zm.news.so.com/38eeb1fdec40278a8dedbbfe7eb9b27a","redirect":0,"rptid":"5fb1b50f56096187","rss_ext":[],"s":"t","src":"什么值得买","tag":[],"title":"程序员必知必备编程宝典——《大话设计模式》

方饱树1522java中接口为什么比抽象类更常用 -
项庞昏15786302393 ______ 这个问题问的很好.这里涉及另一个问题.子类可以实现多个接口 但不能继承多个父类. 而接口弥补了继承 接口 结构清晰 方便扩展,封装.便与团队协同开发 对外只公开接口,通过接口通信 不知道你能明白不

方饱树1522在Java里为什么一个子类不能同时继承两个以上的父类? -
项庞昏15786302393 ______ 解释的不是很专业就是java里规定得是:单继承,多实现.指的就是只能继承一个父类,可以实现多个接口通俗点说:单继承就好比是一个人只能有一个亲生父亲...

方饱树1522java中抽象类跟接口的区别和总结 -
项庞昏15786302393 ______ 1, 抽象类和接口都代表系统的抽象层; 2, 抽象类和接口都不能被实例化,但都可以继承或者实现抽象类或者接口的具体类,通过定义引用变量来构造; 3, 抽象类和接口都包含抽象方法; 4, 抽象类中可以为部分方法提供默认的实现,可以...

方饱树1522java中 一个类可以同时实现两个没有任何关系的接口吗? -
项庞昏15786302393 ______ 可以.java是单一继承的.但是可以实现多个接口

方饱树1522java中接口和抽象类的区别是什么 -
项庞昏15786302393 ______ 定义的关键字:abstract class;interface; 组成:常量,变量,抽象方法,普通方法,构造方法;全局常量,抽象方法; 权限:可以是各种权限;只能是public; 关系:抽象类可以实现多个接口;接口不能实现抽象类; 使用:子类利用extends;子类利用implements实现接口; 涉及的设计模式:模板设计模式;工厂,代理设计模式; 局限性:一个子类只能继承一个抽象类;一个子类可以继承多个接口; 如果抽象类和接口都能实现的操作,一般选择接口,因为可以避免单继承局限;

方饱树1522java里面怎么创建一个子类同时实现接口啊? -
项庞昏15786302393 ______ class DongWu{ } interface BuRuDongWu{ public void buRu(); } public class Gou extends DongWu implements BuRuDongWu{ public void buRu(){ } } 一定要实现接口里的方法,有多少个就要实现多少个.

方饱树1522java中一个父类可不可以有多个子类 -
项庞昏15786302393 ______ JAVA是单继承 ,只能够继承一个父类 但是允许有多个子类 恩 ,你的例子正确

方饱树1522接口和继承的区别是什么? -
项庞昏15786302393 ______ 由于java中一个类不能继承多个父类,而这个类又需要多种属性,这个时候就可以用接口了,比如说我写一个类:public class Test extends JFrame{}但是你又想用这个类中实现多线程技术,这个...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024