![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式笔记
丶西红柿丿炒蛋
做个帅气的程序猿
展开
-
设计模式六大原则
总原则:开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类等,后面的具体设计中我们会提到这点。 1、单一职责原则不要存在多于一个导致类变更的原因,也就...原创 2017-05-11 19:03:00 · 57 阅读 · 0 评论 -
享元模式
享元模式: 以共享的方式高效的支持大量细粒度对象。享元对象共享的关键是区分内蕴状态和外蕴状态。内蕴状态是存储在享元对象内部的,并且不会随环境的改变而改变。外蕴状态是随环境改变而改变的、不可共享的状态。外蕴状态必须由客户端保存,在需要使用的时候再传入到享元对象内部。外蕴状态不能影响内蕴状态,两者是相互独立的。 种类: 根据享元对象的内部表象,享元模式可...原创 2018-01-31 10:55:22 · 105 阅读 · 0 评论 -
门面模式(Facade)
门面模式: 外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。 结构: 门面角色(Facade):客户端可以调用这个角色的方法,由此对象知晓相关(一个或多个)子系统的功能和责任。正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去。...2018-01-29 16:16:35 · 102 阅读 · 0 评论 -
桥接模式
定义 将抽象化和实现化脱耦,使二者可以独立的变化。 分析 抽象化 多个实体中的共同概念特性。一组对象如果有相同的概念联系,那便可以通过一个共同的类来描述。如果一写类具有共同的概念性联系,往往可以用一个抽象类来描述。 实现化 抽象化给出的具体实现就是实现化。一个类的实力就是这个累的实现化。具体子类是...原创 2018-01-24 23:00:26 · 121 阅读 · 0 评论 -
适配器模式
适配器模式定义 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 适配器模式的结构 适配器模式有两种形式:类适配器模式和对象适配器模式 1、类适配器 适配器和适配者是继承关系 Target是客户端期待的接口,Adaptee是需要适配的接口...原创 2018-01-20 22:42:27 · 73 阅读 · 0 评论 -
原型模式(Prototype)
原型模式(Prototype)定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 工作原理:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。 理解:原型模式,顾名思义,通过一个原型模板,依葫芦画瓢得到另一个新的对象。即通过一个已经存在的对象,复制出更多的具有与此对象具有相同类型的新的...原创 2017-06-19 22:58:30 · 67 阅读 · 0 评论 -
建造者模式
建造者模式定义:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。组成:产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。抽象建造者:引入抽象建造者的目的,是为了将建造的具体过程交与它的子类来实现。这样更容易扩展。一般至少会有...原创 2017-05-14 00:15:14 · 68 阅读 · 0 评论 -
工厂模式
工厂模式工厂:一个生产东西的地方。在java中就是创建实例的地方。通常,在我们需要实例化一个对象的时候,我们会使用new关键字。如果我们创建一个类,让这个类给我们一个实例化对象,那么这个类就是工厂类了。 简单工厂模式 interface Sender { public void send(); }class MailSender implements S...2017-05-12 23:59:06 · 73 阅读 · 0 评论 -
单例模式
单例模式单例模式是一种对象创建模式,用于产生一个对象的具体实例,确保系统中一个类只能产生一个实例。单例的重点就是只产生一个实例,供多个地方使用,从而减少实例的频繁产生和销毁。 饿汉式class Singleton { private static Singleton instance = new Singleton(); private Singleton() ...2017-05-11 22:54:32 · 52 阅读 · 0 评论 -
代理模式
代理模式: 给某一个对象提供一个代理对象,并有代理对象控制对原对象的引用。通常,一个客户不想或者不能直接引用一个对象,而代理对象可以在客户端与目标对象之间起到中介作用。 结构: 抽象主题角色(Subject):声明了真实主题和代理主题的共同接口,使得在任何可以使用真实主题的地方使用代理主题。 代理主题角色(Proxy):代理主题...2018-02-01 11:00:59 · 88 阅读 · 0 评论