学了那么多年设计模式依然不会用,那可真蠢

Java  设计模式

1.一共23种设计模式

2.共分为三大类:创建型(5种):工厂方法模式、抽象工厂方法模式、单利模式、建造者模式、原型模式。

       结构型(7种):适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

       行为型(11种):策略模式、模版方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

3. 设计模式6大原则:

     1、开闭原则 (扩展开放,修改封闭)

     2、里氏代换原则 (子类可以替换父类)

     3、依赖倒转原则  (依赖抽象,非具体类)

     4、接口隔离原则 (使用多个接口,比使用一个接口好)

     5、迪米特法则 (实体类应当减少互相作用)

     6、合成复用原则 (尽量使用合成与聚合方式,少用继承)

4. 简单解释各个设计模式

     工厂 - 就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。

   单例 - 只能创建一个实例

   建造者 - 建造者模式是将各种产品集中起来进行管理,用来创建复合对象

   原型 - 该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象

   适配器 - 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题

   装饰 - 装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例

   代理 - 代理模式就是多一个代理类出来,替原对象进行一些操作

   外观 - 外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口

   桥接 - 将抽象化与实现化解耦,使得二者可以独立变化

   组合 - 组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便

   享元 - 享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销

   策略 - 策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户

   模板 - 就是指:一个抽象类中,有一个主方法,再定义1...n个方法,定义一个类,继承该抽象类,通过调用抽象类,实现对子类的调用

   观察者 - 当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一对多的关系

   迭代 - 迭代器模式就是顺序访问聚集中的对象

   责任链 - 有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求

   命令 - 发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行

   备忘录 - 主要目当对象的状态改变时,同时改变其行为的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫备份模式更形象些

   状态 - 当对象的状态改变时,同时改变其行为

   访问者 - 访问者模式就是一种分离对象数据结构与行为的方法,通过这种分离,可达到为一个被访问者动态添加新的操作而无需做其它的修改的

   中介者 - 中介者模式也是用来降低类类之间的耦合的,类之间有依赖关系的话,不利于功能的拓展和维护,修改一个对象,关联的对象都得修改

   解释器 - 基本就这样,解释器模式用来做各种各样的解释器,如正则表达式等的解释器等等

5. 面向对象的思想精髓

    封装、继承、多态可以把程序的耦合度降低了

    设计模式使得程序更加的灵活容易修改,并且易于复用

    面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类

    假设变化不会发生,当发生时,我们就创建抽象来隔离以后发生的同类变化

    面向对象的好处:可维护性、可扩展性、可复用性、灵活性。

    抽象不应该依赖细节,细节应该依赖于抽象,接口编程,不要实现编程。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值