![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
archer.wu
当你的才华还撑不起你的野心的时候,就应该静下心来学习;当你的能力还驾驭不了你的目标时,就应该沉下心来,历练;梦想,不是浮躁,而是沉淀和积累,只有拼出来的美丽,没有等出来的辉煌,机会永远是留给最渴望的那个人,学会与内心深处的你对话,问问自己,想要怎样的人生,静心学习,耐心沉淀,送给自己,共勉。
展开
-
设计模式——观察者
原创 2016-05-19 01:18:12 · 329 阅读 · 0 评论 -
状态模式——详解红绿灯问题
状态模式——详解红绿灯问题状态模式的定义是这样的:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。下面做一个简答的解释,就是说当对象的状态改变了之后,再次调用对象的方法,对象会提供不同的动作。下面是一个例子:这个是一个红绿灯问题(为了解释状态模式)。面前有一盏灯和3个按钮,灯在不同状态下按不同的灯,会给出当前转换到某种灯的状态,同时灯的颜色原创 2017-07-06 23:35:27 · 6533 阅读 · 0 评论 -
设计模式——桥接模式
设计模式——桥接模式先说一下桥接模式的定义以及主要使用场景。桥接模式是用于把抽象化和实现化解耦,使得二者能够独立变化。桥接模式主要解决的问题是类爆炸问题。好,下面上货。如上图所示,是一个经典的多态的例子。但是仔细想想,这里面的类太多了,如果颜色和形状分别是两个维度,单独变化,这样子类的数量会少很多的。我们先用工厂模式对这个图形类表示一下,看如何对画带有颜原创 2017-07-15 23:55:46 · 364 阅读 · 0 评论 -
设计模式——适配器模式
设计模式——适配器模式先说一下适配器模式的定义:适配器模式是作为两个独立不兼容接口之间的桥梁。这种类型的设计模式属于结构性模式,它结合了两个独立接口的功能。需要指出的是,这种模式是在已有系统中进行改造时使用的,而不是一开始设计时使用的。因为在最开始的设计阶段完全可以更改设计实现这些功能。好,下面上货。如上图所示,当前Cat类有Move的接口,现在有新的需原创 2017-07-15 23:35:21 · 340 阅读 · 0 评论 -
服务器定位模式——配合注解实现
服务器定位模式——配合注解实现本文主要介绍如何使用注解实现服务器定位模式。本文主要参考:http://www.runoob.com/design-pattern/service-locator-pattern.html服务器定位模式的使用场景:当有多个服务实现类需要根据需要进行分别调用时使用。我们在使用CalServiceImpl2和CalServiceIm原创 2017-07-05 06:49:28 · 907 阅读 · 0 评论 -
设计模式——建造者模式
设计模式——建造者模式下图为建造者模式的类图:原创 2017-07-11 22:07:04 · 496 阅读 · 0 评论 -
设计模式——抽象工厂
设计模式——抽象工厂现在需要在工厂模式的基础上实现抽象工厂。package com.xueyoucto.xueyou;/** * Created by Administrator on 2016-07-05. */public interface Ax { public void kanshu(); public void kanchai();}packa原创 2016-07-05 15:37:18 · 344 阅读 · 0 评论 -
设计模式——工厂模式
设计模式——工厂模式经过简单工厂的学习,发现在创建对象的时候,还是需要进行判断,这个判断少的时候还好,如果太多了,在使用的时候,这个简单工厂类就显得有些臃肿。所以还有一种模式,工厂模式。package com.xueyoucto.xueyou;/** * Created by Administrator on 2016-07-05. */public class Person {原创 2016-07-05 14:48:55 · 303 阅读 · 0 评论 -
代理模式——静态代理、动态代理、cglib代理
代理模式——静态代理、动态代理、cglib代理先说一下代理模式,代理模式有很多种,远程代理,虚拟代理,保护代理等等。代理模式总结起来就是包装一个对象并控制对他的访问。比如远程代理就是持有一个远程对象的本地代表。虚拟代理是当创建一个开销较大的对象时,虚拟代理直到我们需要的时候才进行创建,在创建前和创建中时,有虚拟代理来扮演对象的替身。对象创建后,代理就会直接将请求委托给对象。保护代理为一个对象提原创 2017-06-30 07:52:05 · 554 阅读 · 0 评论 -
设计模式——单例模式
设计模式——单例模式单例模式分为懒汉和饿汉两种,下面是比较稳妥的实现方式:懒汉:package com.xueyoucto.xueyou;/** * Created by Administrator on 2016-07-07. */public class IndexGenerator { private static class LazyHolder { ...原创 2016-07-07 11:51:42 · 427 阅读 · 0 评论 -
设计模式组合——命令模式组合工厂模式
设计模式组合——命令模式组合工厂模式利用命令模式实现司机开车的程序,车有前进、后退、左转、右转的能力。司机能够控制车进行左转右转。正常情况是一个car类,一个driver类,然后driver类里有一个car的实例,之后控制车进行前进、后退。但是,这样,车和司机的耦合程度比较高,而且如果要增加日志功能的话,就不能在driver类中,因为记录日志是系统的功能,而不是司机的功能。上面是我的一原创 2016-07-05 17:39:08 · 3103 阅读 · 4 评论 -
设计模式——命令模式
设计模式——命令模式利用命令模式实现司机开车的程序,车有前进、后退、左转、右转的能力。司机能够控制车进行左转右转。正常情况是一个car类,一个driver类,然后driver类里有一个car的实例,之后控制车进行前进、后退。但是,这样,车和司机的耦合程度比较高,而且如果要增加日志功能的话,就不能在driver类中,因为记录日志是系统的功能,而不是司机的功能。下面看代码:package co原创 2016-07-05 16:46:17 · 453 阅读 · 0 评论 -
设计模式——简单工厂
设计模式——简单工厂有一个人,想要砍树,也想砍柴,他需要一把斧子。一般情况下,我们都是直接new一个person,再person里有个ax对象,让后this.ax = new ax();这样能够实现这个功能,但是不够美观,不够优雅。下面我们看一个非常常用的模式,叫做简单工厂。先看一下代码:package com.xueyoucto.xueyou;/** * Created by原创 2016-07-05 09:22:27 · 293 阅读 · 0 评论 -
设计模式——命令模式实现undo、redo
设计模式——命令模式实现undo、redo本文主要参考文章《命令模式场景之undo》实现一个简单的undo、redo功能。比如数据库插入后想进行撤销操作。同时进行多个操作后进行撤销操作。package com.xueyoucto.xueyou;/** * Created by Administrator on 2016-07-05. */public interface Co翻译 2016-07-05 10:49:08 · 5708 阅读 · 0 评论 -
设计模式之工厂模式
原创 2016-06-01 23:24:28 · 330 阅读 · 0 评论 -
设计模式之简单工厂
原创 2016-06-01 23:22:41 · 254 阅读 · 0 评论 -
设计模式之策略模式Stragegy Pattern
设计模式之策略模式Stragegy Pattern策略模式的定义:定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。下面用一个例子来说明。有这样一个类Person,它能够吃饭,喝水,睡觉。但是需要根据Person的年龄,当年龄小于50的时候是年轻人,需要多吃多喝多睡。当年龄大于50的时候是老年人,需要少吃少喝少睡。正常情况下我们可以这样,在Pe原创 2016-05-16 04:11:27 · 565 阅读 · 0 评论