java23种设计模式一(连载)

设计模式概要

        设计模式,顾名思义,它是一种模式,在面向对象中,它运用类与它们的方法来达到目标。使用它便于代码的可重用和可读性,有利于系统的维护。Design pattern》一书中首次提出了23种设计模式倘若你想成为编程高手,就必须要学习设计模式

        以下列出《Design pattern》一书中描述的23种设计模式,它们分别是:

1、适配器模式

2、外观模式

3、合成模式

4、桥接模式

5、单例模式

6、观察者模式

7、调停者模式

8、代理模式

9、责任链模式

10、享元模式

11、构建者模式

12、工厂方法模式

13、抽象工厂模式

14、原型模式

15、备忘录模式

16、模板方法模式

17、状态模式

18、策略模式

19、命令模式

20、解释器模式

21、装饰器模式

22、迭代器模式

23、访问者模式

以下分别介绍这23种设计模式

一、适配器模式

        所谓适配器模式,是指将一个类适配成用户所期待的,它通常分为两大类:类适配器和对象适配器。

        类适配器

        这种适配器模式下,适配器继承自已实现的类(一般多重继承)。

      具体来说,我们需要实现目标接口,并继承自现有类,来达到用户所期望的效果具体实现如下:

    package cn.com.pattern;  
      
    //目标抽象角色,用户需要的是有圆形的usb接口  
    public interface Target {  
        public void provideCircleUsb();  
    }  
    package cn.com.pattern;  
    //源角色,这里是指提供方形的usb接口  
    public class Adaptee {  
        public void provideSquareUsb(){  
            System.out.println("我提供方形的USB接口");  
        }  
    }  
    package cn.com.pattern;  
    //适配角色,这里指老板买给我们的那个转换器  
    public class Adapter extends Adaptee implements Target{  
        @Override  
        //转换器将圆形的接口转换为方形接口  
        public void provideCircleUsb() {  
            this.provideSquareUsb();  
        }  
    }  
    package cn.com.pattern;  
      
    //客户端,也就是问题中的键盘  
    public class Client {  
        public static void main(String[] args) {  
            Target target=new Adapter();  
            //键盘只能使用圆形的USB接口  
            target.provideCircleUsb();  
        }  
      
    }  


       对象适配器

       在这种适配器模式中,适配器容纳一个它包裹的类的实例。在这种情况下,适配器调用被包裹对象的物理实体。当你需要适配的一组方法并非定义在接口中时,就可以创建一个对象适配器,采用对象方式实现:

package cn.com.pattern;
public class Adapter implements Target{  
       private Adaptee adptee;  
       public Adapter(Adaptee adptee){  
          this.adptee=adptee;  
          }  
           
        @Override  
    //转换器将圆形的接口转换为方形接口  
    public void provideCircleUsb() {  
        adptee.provideSquareUsb();  
    }  


  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lynnlovemin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值