java设计模式
小忆_PK
这个作者很懒,什么都没留下…
展开
-
java设计模式--单例模式
单例模式(singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。实例:先看饿汉式package com.sl.demo.singleton;/** * 饿汉式(饿了,所以一上来就吃) * @author pengkun * */public class StarveSingleton { //在内部new一个自己 private static StarveSi...原创 2018-07-09 21:49:14 · 136 阅读 · 0 评论 -
java设计模式--组合模式
简介:组合模式:组合模式说白了就是可以看成树结构,一个层级结构,如:机构组织,文件文件夹,平常手风琴,权限结构,它里面包含了叶子节点(下面没有子节点了)和父级节点 (下面还有节点)UML: 实例:组合抽象package com.sl.demo.component;/** * 组合抽象 * @author pengkun * */public abstrac...原创 2018-07-28 12:00:54 · 181 阅读 · 0 评论 -
java设计模式--命令模式
简介:命令模式:说白了领导(调用者)下个命令(命令)让某人干某事(接收者:实际干活的人)角色 : 抽象命令:一个抽象类或接口 具体实现命令:具体实现抽象命令,持有接收者,并调用接收者对象的功能来完成执行命令的操作 接收者:真正执行命令的对象,任何类都可以只要能完成命令要求的功能 调用者:通常会持有命令对象,可以持有多个,相当于入口UML图:...原创 2018-07-28 11:20:37 · 173 阅读 · 0 评论 -
java设计模式--外观模式(门面模式)
简介:外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用 角色: 1).门面角色(facade):外观模式的核心。它被客户角色调用,它熟悉子系统的功能。内部根据客户角色的需求预定了几种功能的组合。 2).子系统角...原创 2018-07-28 10:34:46 · 454 阅读 · 0 评论 -
java设计模式--观察者模式
1 简介 在实际生活中我们应该都有碰过过这个场景,那就是主题和订阅,一旦你订阅了主题,一有什么消息活动都会发送给你,一个主题一般会有一个或多个订阅,这就是观察者模式了2 实例 其实jdk 的java.utils 包里就已经帮我们写好了被观察者的主要功能,我们只需要扩展就行了,源码我已经翻译了3 UML 代码:package com.sl.demo.Observable;im...原创 2018-07-14 15:18:28 · 166 阅读 · 0 评论 -
java设计模式--责任链模式
1 简介 个人觉得:它减少了if else 判断,而且易扩展2 原理: 顾名思义我们可以把他看成一条链子,一环扣一环,就比如一个老板不可能什么鸡毛蒜皮的小事都是我来处理,那不是把老板累死?行吧 那这样吧,老板想了个办法,我手下那么多职位,每个职位分配个我觉得这个职位的人能解决的范围让它去解决就行了,剩下的我觉得必须我来处理的我才处理,那怎么才能到我这? 员工-主管 -老板 方正就是一...原创 2018-07-14 14:58:21 · 154 阅读 · 0 评论 -
java设计模式--建造者模式
简介1.指挥者(Director)直接和客户(Client)进行需求沟通; 2. 沟通后指挥者将客户创建产品的需求划分为各个部件的建造请求(Builder); 3. 将各个部件的建造请求委派到具体的建造者(ConcreteBuilder); 4. 各个具体建造者负责进行产品部件的构建; 5. 最终构建成具体产品(Product)实例 1.电脑城老板(Diretor)和小成(Client)进行需求...原创 2018-07-14 14:42:47 · 189 阅读 · 0 评论 -
java设计模式--模板方法模式
1 简介 定义一个模板结构,将具体内容延迟到子类去实现。它主要作用:在不改变模板结构的前提下在子类中重新定义模板中的内容。主要两点 1 提高代码复用性 将相同部分的代码放在抽象的父类中,而将不同的代码放入不同的子类中 2 实现了反向控制 通过一个父类调用其子类的操作,通过对子类的具体实现扩展不同的行为,实现了反向控制 &am...原创 2018-07-14 14:26:31 · 127 阅读 · 0 评论 -
java设计模式--抽象工厂模式
1 背景 上一章节我们说到了造车,当是客户经理忘记了一件很重要的事情,忘记车还分手动挡和自动挡了,所有这次就用抽象工厂来实现了。 然后我们就开始分析了,首先当然是车啦,然后各种型号下又分别有手动挡和自动挡2 UML代码:/** * 车 * @author pengkun * */public interface Car { void getCar();}/** * ...原创 2018-07-14 14:07:37 · 145 阅读 · 0 评论 -
java设计模式--工厂模式
1.工厂模式的定义 工厂模式使用的频率非常高,我们在开发中总能见到它们的身影。其定义为:Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to ...原创 2018-07-14 13:04:46 · 163 阅读 · 0 评论 -
java设计模式---之认识UML类图(开头篇)
1 . 说明 我们时常在一些技术书中看到这些类图表示,简单的我们还能看懂,有些标记我们很容易混淆。今天首先就简单讲一下如何看懂UML图2 . 案列 首先你看那个动物矩形框,他就是代表一个列(class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或者行为。注意前面的符号:+ 表示public,- 表示...原创 2018-06-30 16:50:00 · 484 阅读 · 0 评论 -
java设计模式--简单工厂模式
1 .概念简单工厂模式又 叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。2 .实例用控制台写一个简单的计算机3 .原始案列4 .UML图...原创 2018-07-05 21:13:26 · 156 阅读 · 0 评论 -
java设计模式--代理模式(静态,jdk,cglib)
设计思路: 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上, 增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法实际应用场景: aop案列: 通俗说法:谈恋爱,你不想去送礼物,不想干那些比...原创 2018-07-09 23:17:32 · 213 阅读 · 0 评论 -
java设计模式--策略模式
设计思路: Context上下文(环境角色):持有一个策略对象, Strategy(抽象策略角色):抽象类或接口等着具体策略类来实现 , 具体策略角色:实现了Strategy抽象类或接口场景:最近手游比较火,一个餐厅为了吸引客户,活动期间根据王者荣耀段位来本店打折消费,现在要你写个程序来实现计算实际金额. 铂金(platinum)0.9 砖石(masonry) 0.8 王者(th...原创 2018-07-09 22:35:19 · 335 阅读 · 0 评论 -
java设计模式--备忘录模式
简介:备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。现实案列:回退 Ctrl+Z角色: 发起人:记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责创建和恢复备忘录数据。 备忘录:负责存储发起人对象的内部状态,在需要的时候提供发起人需要的内部...原创 2018-07-28 12:37:26 · 169 阅读 · 0 评论