自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 享元模式(Flyweight)

重复利用对象各种池类思想。例如:常量池中String s = new String(“www”);s.intern();//字符串“www”,加入方法区中运行时常量池,堆中存放常量池地址引用

2021-03-01 21:50:43 82

原创 解释器模式(Intepreter)

动态脚本解析底层开发时用(暂不研究)

2021-03-01 21:11:51 118

原创 状态模式(state)

多态:一种状态,多种实现。拓展:有限状态机FSM(不是状态模式!)

2021-03-01 21:08:21 104

原创 模版方法(TemplateMethod)

钩子函数package com.mashibing.dp.TemplateMethod;public class Main { public static void main(String[] args) { Father f = new C1(); f.m(); }}abstract class Father { //模版方法 public void m() { op1(); op2();

2021-03-01 20:39:17 86

原创 备忘录模式(Memento)

记录状态,便于回滚游戏存盘

2021-03-01 20:15:55 59

原创 原型模式(Prototype)

Object.clone();java就是在原有对象内存,拷贝一份浅拷贝/*如果被克隆对象有引用类型属性,只克隆该对象,引用类型的地址也会被复制,造成2对1,即两个对象实例同时指向一个属性*/publi class person{ Location l = new Location}深拷贝class Person implements Cloneable { int age = 8; int score = 100; Location loc = new

2021-02-26 21:17:46 40

原创 命令模式(Command)

doit()undo()宏命令command+compose多次undocommand+cor事物回滚command+记忆

2021-02-25 22:05:18 91

原创 桥接模式(Bridge)

用的不多1.分离抽象与具体2.聚合方式(桥接)连接抽象与具体防止类爆炸式增长

2021-02-24 20:49:29 55

原创 接口转换器模式(Adapter/Wrapper)

适配器FileInputStream不能与BufferedReader直接匹配,InputStreamReader(相当于转接头)用来转换public class Main { public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("c:/test.text"); InputStreamReader isr = new

2021-02-24 20:31:51 115

原创 构建器模式(Builder)

构建复杂对象:超多的属性也可以一个一个setXxx(“”)方法但是根据业务逻辑将属性分组,采用链式调用更清晰接口方式:1.创建某一构造器接口(根据相应复杂对象设计接口方法)2.创建实现类(复杂对象实例,每个方法实现中赋值复杂对象并最终方法retrun 对象)3.调用形式TerrainBuilder builder = new ComplexTerrainBuilder();Terrain t = builder.buildFort().buildMine().buildWall().buil

2021-02-24 19:57:37 188

原创 访问者模式(Visitor)

在对象结构不变的情况下动态的操作内部元素。比较专业(专门领域)的模式,如:编译器(?)要求被访问者结构固定本质是:让访问者类去根据要求操作对象类的成员属性

2021-02-21 22:46:28 61

原创 迭代器模式(Iterator)

重要应用:容器与容器遍历数据结构只有两种(物理结构)1.数组:连续的存储空间2.链表:非连续的存储,依靠指针连接逻辑结构:栈、二叉树等迭代器本质是多态的一种应用场景:不同容器,都能通过统一的方式去遍历内容ArrayList,LinkedList,HashSet 等(jdk根源是父类Collection实现Iterable接口类)实现统一规范接口Iterator,各自根据自己数据结构的特点做各自的遍历实现方式优化:加入范型,避免强转出错扩展:数组与链表两者的比较**查询操作时:**数组是

2021-02-21 19:24:36 41

原创 代理模式(Proxy)

静态代理场景:某一物体移动方法前需要不同的描述:例如日志、时间、特殊事件、权限等的单一或多个的不同组合。可以用继承,但是会需要多个代理类重复的拼接不同的描述,且高耦合。可以代理类中聚合物体类,虽说耦合降低,但是拼接还是不行。最终可以使代理类与物体类同实现接口,接口类聚合在代理类中(类似装饰模式)。使:前后表述行为与物体,同时实现代理接口,实现被代理物体(如:坦克)的行为的前后处理,可以是代理类成链的被代理。动态代理jdkjava.lang.reflectProxy.newProxyInst

2021-02-19 22:30:07 183 2

原创 组合模式(Composite)

树状结构专用模式

2021-02-13 22:43:32 99

原创 观察者模式(Observer)

三要素:事件源对象(定义事件观察者集合),事件(有参构造可传事件对象),事件观察者(实现自定监听接口)

2021-02-13 22:22:03 49

原创 装饰器(Decorator)

与被装饰类有共同父类,且装饰器本身聚合父类

2021-02-12 20:46:30 63

原创 责任链(Chain Of Responsibility)

1.定义责任链接口package com.lpl.tank.cor;import com.lpl.tank.GameObject;/** * @Classname Collider * @Description 碰撞,责任链是实现该接口 * @Date 2021/2/2 21:07 * @Created by lplmbp */public interface Collider { boolean collide(GameObject o1,GameObject o2);}

2021-02-03 23:07:56 146 1

原创 门面模式(facade)/调停者模式(Mediator)

外部看:门面内部看:调停者实例:消息中间件

2021-02-01 21:34:56 97

原创 工厂模式(factory)

任何可以产生对象的方法或类,都可以称为工厂(factory)。单例也是一种工厂。简单工厂:静态工厂:工厂方法:抽象工厂:SpringIOC:

2021-01-31 22:45:46 175

原创 mysql基础

3.了解数据库和表– 显示所有数据库show databases;– 切换数据库use test;– 显示所在数据库中所有表show TABLES;– 展示users表中的列信息show columns FROM users;describe users;– 查看当前设置show VARIABLES;show status;– 显示创建语句show create database test;show create table users;– CREATE TABLE user

2021-01-26 18:01:51 142

原创 策略模式(strategy)

comparable:比较comparator:比较器

2021-01-25 23:32:15 67 1

原创 单例模式(singleton)

现今共8种分为饿汉式(2种,JVM保证每个class只在内存中load一次)、懒汉式(4种,都是在与并发做斗争)、静态内部类(1种,JVM保证单例)与枚举(1种,这个最完美,天生不可实例,并且防止反序列化)...

2021-01-25 23:29:12 52

原创 设计模式

设计模式六大设计原则(助记方法:solid 稳定)1.单一原则(Single Responsibility Principle)2.开闭原则(open closed principle)3.里氏替换原则(LSP liskov substitution principle)4.迪米特原则(law of demeter LOD)5.接口隔离原则(interface segregation principle)6.依赖倒置原则(dependence inversion principle)...

2021-01-25 09:32:44 73 1

原创 maven刷新java编译版本变为jdk5

1.第一种方法直接修改maven配置文件setting.xml,使其默认为jdk8<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <proper

2021-01-24 22:37:52 920

原创 hp打印机_smart tank 510 series

官网:123.hp.com1.安装打印机(买来有说明书)2.设置打印机(需无线长亮,手机下载hp smart)按照说明,连接自家无线密码。Mac可以直接到app store中下载(tank 510可以打印复制扫描)

2021-01-12 09:30:11 12774 1

原创 hello world

java 的hello worldpublic class HelloWorld{ public static void main(String[] args){ System.out.println("hello world!"); }}(对应java文件路径位置)命令行中://编译java文件,生成.class文件lpl@bogon Documents % javac HelloWorld.java//解释class文件lpl@bogon Documents % java Hel

2021-01-03 17:47:29 118

原创 位运算

位运算原码、反码、补码的存在其实就是为了进行运算将最高位作为符号位(0:正数,1:负数)正数:原码、反码、补码都为其本身以5为例:原码、反码、补码:00000101负数:原码:自身 ;反码:保留符号位,其余按位取反 ;补码:取反后加1;为什么有反码?1+(-1)=0(00000001)原+(10000001)原=10000010=-2首先引入反码:(00000001)反+(11111110)反=11111111(反)=-0 有问题0没有正负之分再试一个例子:1+(-2)=-1(

2021-01-03 16:58:48 84 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除