Luke

码农日常记录

设计模式的简单理解

网上很多关于设计模式的解析,并不是很好理解,所以这里罗列一下我的简单理解,希望大家指正!  

  1.工厂模式:指不向外部提供具体的创建对象的方法,只要传入一个名字参数就可以获取对象,比如Spring的Bean工厂,User user = beanFactory.getBean("user"):

  2.抽象工厂模式:指创建工厂的工厂,前面提到的bean工厂,相当于是它的子工厂,还有一个更大的工厂在创建这些工厂,获取的时候也是只要传入一个名称,

  这里命名一个工厂创建者FactoryProducer,BeanFactory beanFactory = FactoryProducer.getFactory("beanFactory");

  3.单例模式:创建一个类,这个类只能有一个实例,而且必须自己创建自己的唯一实例(构造方法私有化,内部进行 new),必须给所有其他对象提供这一实例(public static xxx getInstance(){})。

  4.建造者模式:使用多个简单的对象一步一步构建成一个复杂的对象。

  5.策略模式:选择交通出行方式,选择骑自行车、坐汽车,每一种出行方式都是一个策略,而这些策略都当做是对象,出行这个行为也是一个对象,出行对象 可以自由选择不同的出行方式对象。

  6.观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新,降低耦合。

  这就相当于发布订阅的模式,让多个观察者对象同时监听或者订阅同一个主题对象,这个主题对象在状态发生变化时,会以广播的形式通知所有观察者对象,使它们能够自动更新自己。

  7.代理模式:为其他对象提供一种代理以控制对这个对象的访问。有时候直接访问某个复杂对象时,创建时就会消耗大量性能,这时候通过代理对象,在访问这个对象的时候做一些控制,减轻复杂过程。

  如果有了解微服务的服务调用,那对整个代理就不陌生了,调用方通过代理对象来调用远程服务,不关注底层的通信协议。

  8.装饰模式: 允许向一个现有的对象添加新的功能,同时又不改变其结构。比如一个毛坯房,装修时粉墙、铺地砖、置办家具,但是不改变房体结构,添加了厨房、卫生间、卧室的功能。

  这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。

  9.迭代器模式:java中经常使用的Iterator类,但同时它也是一个设计模式,所以在我们实现迭代器模式的时候实际上就是在实现一个迭代器类。

  10.适配器模式:将一个类的接口转换成客户希望的另外一个接口。保留现有类所提供的服务,向客户提供接口,以满足客户的期望。

  比如:一个蓝球队,教练通过一个交流接口和所有的球员进行交流,突然来了一个外援(教练不会外语),那现在既要保留原有的交流,又要能够和外国人交流,这时候就出现一个翻译(适配器角色),满足了需求。

阅读更多
想对作者说点什么? 我来说一句

设计模式之通俗理解

2016年11月10日 898KB 下载

没有更多推荐了,返回首页

不良信息举报

设计模式的简单理解

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭