
设计模式
文章平均质量分 74
设计模式
猎人在吃肉
这个作者很懒,什么都没留下…
展开
-
设计模式之委派模式(Delegate Pattern),不属于 23种设计模式
文章目录一、委派模式的定义二、优缺点三、区别代码模式 与 委派模式的区别四、角色与UML类图4.1、主要角色:4.2、UML类图五、示例1:5.1、参考类图:5.2、代码:1、BaseService( 任务接口)2、具体任务(FrontService、BackendService)3、Delegator:委派者角色4、Client5、效果截图:六、示例26.1、需求:6.2、代码:1、Worker...原创 2020-03-26 17:14:18 · 4736 阅读 · 1 评论 -
java实现的23种设计模式
一、设计模式的分类按照目的来分,设计模式 可以分为 创建型模式、结构型模式 和 行为型模式。创建型模式: 用来处理对象的创建过程;结构型模式: 用来处理类或者对象的组合;行为型模式: 用来对类或对象怎样交互和怎样分配职责进行描述。二、创建型模式创建型模式 ,用来处理对象的创建过程,主要包含5种设计模式:单例模式(Singleton Pattern)工厂模式(Factor...原创 2020-02-29 14:22:54 · 566 阅读 · 0 评论 -
设计模式之口诀
1、创建型模式有 5 种:工厂方法模式 、抽象工厂模式 、单例模式 、建造者模式 、原型模式。口决:原来的建设工人单独抽奖。解释:原(原型模式)来的建(建造者模式)设工(工厂方法模式)人单(单例模式)独抽(抽象方法模式)奖。2、结构型模式有 7 种 :适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。口诀:带上适当的装备组合,让外国侨胞享受。解释:带(...转载 2020-03-25 11:35:33 · 8798 阅读 · 2 评论 -
设计模式之职责链(责任链)模式(Chain of Responsibility Pattern)
文章目录一、定义与特点1.1、定义:1.2、要点1.3、优点:1.4、缺点:二、模式的结构与实现2.1、主要角色:2.2、UML类图三、职责链模式解决采购审批3.1、需求:3.2、图解3.3、UML类图3.4、代码3.4.1、Handler( 抽象处理者)3.4.2、ApproverForDepart(教学主任)3.4.3、ApproverForCollege(院长)3.4.4、ApproverF...原创 2020-03-24 22:38:26 · 428 阅读 · 0 评论 -
设计模式之策略模式(Strategy Pattern),与 java语言的多态有点像(重点学习)
文章目录一、定义与特点1.1、定义1.2、优点:1.3、缺点:二、角色和UML类图2.1、主要角色如下:2.2、UML类图2.3、示例:2.3.1、Strategy2.3.2、ConcreteStrategyA2.3.3、ConcreteStrategyB2.3.4、ConcreteStrategyC2.3.5、Context:上下文的实现类2.3.6、Client三、鸭子项目示例3.1、需求:3...原创 2020-03-24 16:42:46 · 816 阅读 · 1 评论 -
设计模式之状态模式(State Pattern)
文章目录一、定义二、特点2.1、优点:2.2、缺点:三、角色和UML类图3.1、主要角色:3.2、UML类图四、示例4.1、代码:4.1.1、State:状态4.1.2、StateForNoRaffle:NoRaffle(不能抽奖状态)4.1.3、StateForCanRaffle:CanRaffle(可以抽奖)4.1.4、StateForDispense:Dispense(发放奖品)4.1.5、...原创 2020-03-24 13:22:25 · 391 阅读 · 0 评论 -
设计模式之解释器模式(Interpreter Pattern)
文章目录一、定义二、应用场景三、优缺点3.1、优点:3.2、缺点:3.3、 使用场景3.4、. 应用实例3.5、 注意事项四、UML类图4.1、主要角色4.2、UML类图4.3、 典型代码4.3.1、AbstractExpression 抽象表达式类,典型代码:4.3.2、TerminalExpression 终结符表达式,典型代码:4.3.3、NonterminalExpression 非终结...原创 2020-03-22 22:34:17 · 341 阅读 · 0 评论 -
设计模式之备忘录模式(Memento Pattern)
文章目录一、设计模式的定义二、优缺点2.1、优点:2.1、 缺点:三、备忘录模式的角色和UML类图3.1、角色如下:3.2、 UML类图四、示例14.1、代码:4.1.1、 Originator:发起人4.1.2、 Memento: 备忘录4.1.3、 Caretaker :管理者4.1.4、 Client4.1.5、 运行结果:五、示例25.1、代码:5.1.1、OriginatorForUs...原创 2020-03-25 10:26:52 · 317 阅读 · 0 评论 -
设计模式之中介者模式(Mediator Pattern)
文章目录一、中介者模式的定义与特点1.1、定义:1.2、优点:1.3、缺点:二、中介者模式的角色与UML类图2.1、主要角色:2.2、UML类图三、示例13.1、示例1 UML类图3.2、代码3.2.1、 Colleague : 抽象同事类3.2.2、 ConcreteColleague1: 同事类13.2.3、 ConcreteColleague2: 同事类23.2.4、 Mediator: 抽...原创 2020-03-19 17:53:18 · 551 阅读 · 0 评论 -
设计模式之观察者模式(Observer Pattern)
文章目录一、观察者模式的定义与优缺点二、观察者模式的角色和UML类图2.1、主要角色2.2、UML类图三、第三方接入气象站的示例3.1、示例的UML类图3.2、代码:3.2.1、观察者接口: Observer3.2.2、具体观察者:ObserverForBaidu、ObserverForQQ3.2.3、目标接口: Subject3.2.4、具体目标类:SubjectForWeather3.2.5、...原创 2020-03-18 19:08:15 · 1573 阅读 · 0 评论 -
设计模式之迭代器模式(Iterator Pattern)
文章目录一、迭代器模式的定义与特点二、迭代器模式的结构与实现2.1、 代码:2.1.1、 Iterator2.1.2、 ConcreteIterator2.1.3、 Aggregate2.1.4、 ConcreteAggregate2.1.5、 Client三、大学-学院-专业的示例3.1、需求3.2、UML类图3.3、代码3.3.1、IteratorForComputerCollege(计算机...原创 2020-03-18 10:54:18 · 490 阅读 · 0 评论 -
设计模式之访问者模式(Visitor Pattern),数据对象与数据操作相分离,比较难理解些
文章目录一、访问者模式的定义与特点1.1、定义:1.2、优点:1.3、缺点:二、访问者模式的UML类图2.1、主要角色:三、示例:3.1、歌手海选的UML类图3.2、代码3.2.1、Visitor:Action(测试类型)3.2.2、ConcreteVisitor:ActionForFail(失败)3.2.3、ConcreteVisitor: ActionForSuccess(成功)3.2.3、E...原创 2020-03-16 17:16:18 · 726 阅读 · 0 评论 -
设计模式之命令模式(Command Pattern)
文章目录一、概念二、命令模式的UML类图三、命令模式的应用实例:智能家电项目3.1、项目介绍3.2、项目UML类图3.3、代码3.3.1、 Command(命令):Command3.3.2、Receiver(接收者):LightReceiver3.3.3、ConcreteCommand(命令的实现类):3.3.4、Invoker(请求者): RemoteController3.3.5、Client...原创 2020-03-16 09:54:17 · 451 阅读 · 0 评论 -
设计模式之模板方法模式(Template Method Pattern)
文章目录一、模板方法模式的定义与特点1.1、定义:1.2、优点:1.3、缺点:二、模式的结构与实现三、家庭制作牛奶的示例3.1、制作牛奶的UML类图3.2、代码3.2.1、Milk(抽象类,表示牛奶)3.2.2、MilkWithRedBean(红豆味的牛奶)3.2.3、MilkWithPeanut(花生的牛奶)3.2.4、MilkWithPure(纯味的牛奶)3.2.5、Client一、模板方法...原创 2020-03-15 22:40:19 · 425 阅读 · 0 评论 -
设计模式之代理模式(Proxy Pattern)
文章目录一、代理模式的定义与特点1.1、优点:1.2、缺点:二、代理的分类三、代理模式的UML类图四、静态代理的代码示例4.1、具体要求4.2、分析:4.3、UML类图:4.4、代码:4.4.1、Subject: 接口4.4.2、RealSubject :TeacherDao4.4.3、代理对象,静态代理4.4.4、Client五、动态代理一、代理模式的定义与特点代理模式:代理模式又叫委托模式...原创 2020-03-15 19:22:29 · 417 阅读 · 0 评论 -
设计模式之享元模式(Flyweight Pattern)
文章目录一、享元(共享对象)模式的定义1.1、定义:1.2、两种对象二、享元(共享对象)模式的优缺点三、UML图解四、网站改造示例4.1、示例 UML类图:4.2、代码4.2.1、抽象享元:WebSite4.2.2、具体享元类:ConcreteWebSite4.2.3、非享元类:User4.2.4、享元工厂:WebSiteFactory4.2.5、Client五、享元模式在JDK的 Interge...原创 2020-03-15 17:48:26 · 399 阅读 · 0 评论 -
设计模式之外观模式(Facade Pattern)
文章目录一、外观模式的定义与特点定义:优点:缺点:二、UML类图三、代码SubSystem:DVDPlayerSubSystem:Projector(放映机)SubSystem:Screen(屏幕)SubSystem:Stereo(立体声音响)SubSystem:TheaterLight(剧场灯光)Facade :HomeTheaterFacade(家庭影院项目)Client当一个系统的功能越来...转载 2020-03-14 19:08:55 · 313 阅读 · 0 评论 -
设计模式之组合模式(Composite Pattern)
文章目录1、组合模式的定义与特点1.1、组合模式的定义1.2、解决的问题1.3、优点:1.4、缺点:2、组合模式的UML图3、组合模式在学校院系展示的应用实例3.1、分析:3.2、代码Component(抽像)Composite: University(大学)Composite:College(学院)Leaf:Department (系)Client4、组合模式之透明模式5、组合模式之安全模式1...原创 2020-03-14 18:07:58 · 1629 阅读 · 0 评论 -
UML类图6种关系的总结
在UML类图中,常见的6种关系:Generalization(泛化、继承)Realization(实现)Association(关联)Aggregation( 聚合)Composition(组合)Dependency(依赖)一、6种关系1、Generalization(泛化、继承)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种...转载 2020-03-07 17:46:42 · 11336 阅读 · 1 评论 -
设计模式之装饰模式(Decorator Pattern)
1、装饰者模式 UML图Component(组件) :组件接口 或 抽象类 定义了 组件实现类 和 装饰器实现类 的行为。ConcreteComponent(组件实现类) :组件实现类 实现了 Component 接口 或 抽象类。通常情况下,具体组件实现类就是被装饰器装饰的原始对象,该类提供了 Component 接口中定义的最基本的功能,其他高级功能或后序添加的新功能,都是通过...原创 2020-03-07 13:46:16 · 1434 阅读 · 1 评论 -
java 开发要求
要求1: 出色的文字和口头表达能力,善于沟通,做事有债任感和主动性,面对复杂业务问 题,可以从业务和技术角度推进,最终达成目标;要求2: 精通大中型网站系统系统分析、架构设计、软件实现、性能优化及系统安全,最好有百万用户给别产品技术架构经验;要求3: 熟悉前端开发技术(至少1种主流React,Vue,Angular),并有过实际项目开发经验;要求4: 掌握分布式系统架构,精通高并发、高I...转载 2020-03-04 14:04:04 · 1143 阅读 · 0 评论 -
设计模式之桥接模式(Bridge Pattern)
文章目录一、桥接模式定义1.1、桥接模式产生的背景1.2、桥接模式的定义二、桥接模式的UML三、代码3.1、Brand3.2、Vivo 、XiaoMi3.3、手机 Phone3.4、FoldedPhone 折叠式手机类3.5、UpRightPhone 直板手机3.3、测试一、桥接模式定义1.1、桥接模式产生的背景以手机为例,对不同手机类型的、不同品牌实现操作编程(比如:开机、关机、上网,打电...原创 2020-03-02 21:20:15 · 576 阅读 · 0 评论 -
设计模式之适配器模式(Adapter Pattern)
文章目录一、适配器模式 的定义1.1、生活场景:1.2、定义:二、适配器模式的种类:三、适配器模式的结构四、类适配器4.1、示例14.1.1、标准接口 和 实现类4.1.2、适配器类(继承)4.1.3、测试4.2、示例24.2.1、适配接口、适配类4.2.2、适配器类4.2.3、测试五、对象适配器5.1、示例15.1.1、标准接口 和 实现类5.1.2、 对象适配器类(构造器注入)5.1.3、测试...原创 2020-03-01 14:40:52 · 468 阅读 · 0 评论 -
设计模式之建造者模式(Bulider Pattern)
文章目录1、建造者模式的定义2、与抽像工厂模式、工厂方法模式的不同3、建造者模式的角色4、代码4.1、House 产品角色4.2、HouseBuilder 抽像的建造者4.3、SmallHouse 小房子,HouseBuilder 的实现类4.4、HighBuilding 高楼 ,HouseBuilder 的实现类4.5、HouseDirector 盖房的指挥者4.6、测试1、建造者模式的定义...原创 2020-02-29 17:38:02 · 381 阅读 · 0 评论 -
设计模式之原型模式(Prototype Pattern),java实现
文章目录1、原型模式的定义2、原型模式UML3、 java 中实现克隆4、原型模式的优缺点4.1、优点:4.2、 缺点:5、浅拷贝6、浅克隆与深克隆 的区别7、深度克隆1、原型模式的定义原型模式是:创建型的设计模式使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。分为 深度克隆 和 浅克隆。2、原型模式UML原型模式要求对象实现一个可以“克隆”自身的 接口 ,...转载 2020-02-29 13:31:11 · 494 阅读 · 0 评论 -
简单工厂模式 在JDK中的使用(Calendar)
public class Main { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); // 取月份要加1 int month = calendar.get(Calendar.M...原创 2020-02-28 15:26:51 · 1225 阅读 · 2 评论 -
工厂模式—— 简单工厂模式、工厂方法模式、抽象工厂模式(java)
文章目录一 、前言二、简单工厂模式2.1、优点2.2、缺点2.3、代码2.3.1、产品接口2.3.2、产品实现类2.3.3、工厂类2.3.4、测试类三、工厂方法模式3.1、使用场景3.2、优点3.3、缺点3.4、代码3.4.1、产品接口、工厂接口3.4.2、产品实现类3.4.3、工厂实现类3.4.4、测试类四、抽象工厂模式4.1、适用场景4.2、优点4.3、缺点4.4、分析:4.5、代码4.5.1...转载 2020-02-28 14:45:18 · 562 阅读 · 0 评论 -
设计模式的种类
java中常用到得设计模式共有23种按照目的来分,设计模式可以分为创建型模式、结构型模式和行为型模式。创建型模式 用来处理对象的创建过程;结构型模式 用来处理类或者对象的组合;行为型模式 用来对类或对象怎样交互和怎样分配职责进行描述。1、创建型模式 用来处理对象的创建过程主要包含以下5种设计模式:工厂方法模式(Factory Method Pattern)抽象工厂...转载 2014-12-04 09:05:10 · 1179 阅读 · 0 评论 -
单例模式(Singleton Pattern)之枚举类
public enum SingleTon { INSTANCE; public void method() { System.out.println("method() "); }}测试类:public class Main { public static void main(String[] args) { SingleTon instance1 = Single...原创 2020-02-27 16:41:23 · 618 阅读 · 0 评论 -
单例模式(Singleton Pattern)之静态内部类
文章目录1、代码2、静态内部类的优点:3、静态内部类又是如何实现线程安全4、静态内部类的缺点1、代码public class SingleTon { //外部类 private SingleTon(){} private static class SingleTonHolder { //静态内部类 private static SingleTon INSTA...转载 2020-02-27 11:41:22 · 3937 阅读 · 0 评论 -
单例模式之饿汉和懒汉(java)
面试时,经常会问到单例模式。单例模式的两种方式: 一种是饿汉式,就是在类初始化的时候,创建对象,这种方式是线程安全的,在程序运行期间就这一个对象。另一种是懒汉式,懒汉式是在第一次使用时才创建对象,但是如果在多线程环境中要考虑线程安全问题。比较喜欢的方式:饿汉式,不用考虑线程安全问题。 怎么区分饿汉和懒汉模式? 饿汉:饿了,饥不择食,系统一运行就创建对象,不考虑太多的...原创 2018-03-08 10:06:02 · 5559 阅读 · 0 评论 -
装饰者模式 以及在JDK和Mybatis中使用
文章目录一、传统开发1.1、介绍1.2、 代码如下:1.2.1、煎饼类1.2.2、加鸡蛋的煎饼1.2.3、加鸡蛋和香肠的煎饼1.2.4、测试:1.2.5、运行结果是1.3、问题来了:二、装饰者模式2.1、代码实现:2.1.1、组件类 -- 煎饼2.1.2、具体组件类的实现类 -- 煎饼2.1.3、抽像 装饰器类2.1.4、具体的装饰器实现类 -- 加一个鸡蛋2.1.5、具体的装饰器实现类 -- 加...转载 2019-03-11 17:49:56 · 634 阅读 · 0 评论 -
单例设计模式的两种情况
饿汉式/* 单例设计模式。 *///饿汉式。class SingleDemo { private static final SingleDemo singleDemo = new SingleDemo(); private SingleDemo() { } public static SingleDemo getSingleDemoInstanc转载 2013-01-20 17:06:48 · 590 阅读 · 0 评论 -
所谓“懒汉式”与“饿汉式”的区别
所谓“懒汉式”与“饿汉式”的区别,是在与建立单例对象的时间的不同。“懒汉式”是在你真正用到的时候才去建这个单例对象:比如:有个单例对象public class Singleton{ private Singleton(){} private static Singleton singleton = null; //不建立对象 public sta转载 2015-03-09 20:33:16 · 697 阅读 · 0 评论