
设计模式
文章平均质量分 56
小强的不死
这个作者很懒,什么都没留下…
展开
-
设计模式---装饰
不要去记,啥接口啥类,搞明白就记住了。也不局限你这模式。我觉得阔以实现这思想的方式都可以。不一定就记住这模式。装饰?啥?一个类代表一个个体,个性化个体,个体里面总有代表性操作。装饰无非就是装饰他想表达的操作。装饰要是垂直装饰,很简单直接继承,想叠加就继承。那没多大意义。累。横向装饰,并且是多次的。想啥时候就给他装饰下。我初步想到的,就是把你这个要装饰的东东给当做成员变量传到真正做装饰的主类...原创 2018-10-17 22:09:21 · 88 阅读 · 0 评论 -
设计模式--模板
//jdk,没有靠谱的例子,可以理解抽象类中,非抽象方法也可以往这里靠 abstract class Template{ public abstract void buildWindow(); public abstract void buildFloor(); //卡死,构建路径,实际步骤抽象由其他玩 public fina...原创 2018-11-13 17:05:25 · 83 阅读 · 0 评论 -
设计模式---观察
//观察者模式,一个观察,一个被观察,或者叫可观察;响应接口模式,那就观察接口,被观察接口; //定义:一旦被观察有什么风吹草动,立即通知观察的那家伙。 //怎么实现?肯定接口实现成观察和被观察两个类。 //那怎么一个有风吹就通知观察那家伙。那肯定是把观察的那家伙放到被观察里面的某个地方 //一旦风吹,就调用观察的方法。他就被知道了。 //jdk经典...原创 2018-11-16 23:39:22 · 89 阅读 · 0 评论 -
设计模式---空对象
不希望用null返回或判断。自定义null(空)类型对象。 public static void main(String[] args) throws ParseException{ java.util.List a = new java.util.ArrayList(); a.add(1); a.add(2); //这中间...原创 2018-11-17 00:02:57 · 222 阅读 · 0 评论 -
设计模式---中介
//把事情丢给中间去处理,去跟其他人沟通 //中介咋处理,其实也是挺老土,把所有人存起来,有谁发信息进来,那除了信息,也得把发信息的主体发进来。或者发给谁的标示//看着main方法里面的代码,写得出来就算了 private abstract class Subject{ public String name; public abstrac...原创 2018-11-21 17:17:39 · 110 阅读 · 0 评论 -
设计模式---备忘录
//备忘录,不影响XX原有数据结构的对象封闭性的情况下,备忘存储实例对象,要用的时候拿出来jdk经典案例,java.util.Date用了long类型fasttime副本存储Date public class XX{ public String name; public String age; public String getN...原创 2018-11-22 01:03:02 · 138 阅读 · 0 评论 -
设计模式--责任链
责任链,处理节节相扣。比如十个类,有序的调用其他九个类,环环相扣。怎么设计比较简洁,要是还想简单设计,连抽象类都搞出来public class test { public abstract class Handler{ public Handler handler; public void setHandler(Handler handler) ...原创 2018-11-20 02:13:31 · 86 阅读 · 0 评论 -
设计模式---组合
让数据组合成树的形式,比如树头有孩子,且孩子自己也是树头。统一的接口定义树中的成员。无论是孩子还是树头,都统一用同一个接口标示。这就是重点;java.util.hashmap.putall方法并没有这种组合的思想。因为putall不是树头。而是遍历把所有孩子给存进去。 public interface IFile{ public void getFile(); }...原创 2018-11-26 01:32:15 · 100 阅读 · 0 评论 -
设计模式---状态
public interface StateI{ public void doAction(); } public class CloseState implements StateI{ public String stateName; public void doAction() { System.out.p...原创 2018-11-27 14:28:53 · 132 阅读 · 0 评论 -
设计模式---访问
public interface Target{ public void access(Visitor visitor); } public interface Visitor{ public void visit(Computer target); public void visit(CPU target); ...原创 2018-11-27 15:21:24 · 116 阅读 · 0 评论 -
设计模式---桥接
共性与特性,抽象类的引用,或结合接口;基本抽象的引用就够说明,共性,类的实际实现;特性,把方法交给他们自己去实现;不写demo;jdk也没有啥经典例子;...原创 2018-11-28 00:02:43 · 95 阅读 · 0 评论 -
设计模式---原型
//原型,彻头彻底给你创建一个对象,不用new,也不用复制,一次行搞定。 //咋整,jdk搞定给你。继承java.lang.Cloneable即可。标示类继承。类似java.lang.seriousable,即可序列化一样 //原型,也叫克隆,克隆有浅,深,浅简单最外层克隆一次即可。深所有引用对象,克隆一次。 //Object类clone方法是保护属性,继承类里面可以用。继...原创 2018-11-05 22:19:27 · 84 阅读 · 0 评论 -
设计模式---解释器
//解释器模式,自定义语法,解析字符串或其他需解释对象。 //必然,有解释目标对象,外面都叫context环境,里面有解释的对象 //解释器的接口,实现解释器的各种各样真正解释语法,随你了你想一个类包括各种解释也行,外面还叫终结和非终结解释器 //jdk里面经典案例java.text.format,有number、date方向 ...原创 2018-11-06 21:51:32 · 278 阅读 · 0 评论 -
设计模式---代理
这玩意没啥意思。静态和动态,区别点,静态要操作成员方法得一一设置,动态就method动态玩。具体看代码。个人这模式感觉是套路,想不出啥所以然。静态的代码省了。aop用了就是动态。动态应该基于反射。interface zz{ public void doSomething(); } public class XX implements zz{ ...原创 2018-10-18 15:22:56 · 89 阅读 · 0 评论 -
设计模式---命令
目的解耦指令调用者,指令执行者。靠中间人,指令这个对象。指令解耦内涵就是成员变量。层层成员变量,就是剔除隔一层的关系。jdk中并发包线程池,把runnable定义为命令,真正的执行者是实现runnable这个接口的类。说明不执着于教条。在于思想。说法。下面例子就一五一十说模式。完全匹配。一个命令一个类,麻烦。public class TV{ public void on()...原创 2018-10-18 23:30:09 · 89 阅读 · 0 评论 -
设计模式---迭代(遍历)
其实很多东西手写或敲不出来,是不知道要干嘛。比如迭代模式是个啥,说出啥,估计很多人都写得出来。迭代模式:不暴露里面的东西,循环遍历里面的东西出来。遍历这个操作,又不暴露,那就遍历这个操作搞成内部类了。作为这家伙的一个属性即可。这属性供外部用就行了。那遍历在内部类里面怎么设计你自己想了。jdk的就是hasnext和getnext,里面加个指针索引即可。搞定迭代遍历。 public int...原创 2018-10-16 20:40:36 · 280 阅读 · 0 评论 -
设计模式---享元
享元模式,共享存储高可用对象,避免多次建立,浪费内存。就是有个成员变量存储了共享的东西。一、integer(-Djava.lang.Integer.IntegerCache.high=250 虚拟机参数可动态设置)int a = 5; int b = 5; Integer i = Integer.valueOf(5); Integer l =...原创 2018-10-22 17:39:21 · 107 阅读 · 0 评论 -
设计模式---适配
适配,讲白就是两个东西整合在一起。至于整合,extends和implements一起来。因搞不了多继承。这就是类适配。另外一种对象适配,把其中一个实例化传进去另外一个的里面也是可以整合在一起。这就是对象适配。貌似很多模式都是把对象传进去。不可以单独看一个点。要看为了达到什么效果传进去。个人理解。适配和装饰,在jdk io 流类的继承实现用得比较经典。字符流同一派系来自同一个接口,功能横向叠加,...原创 2018-10-22 21:28:41 · 299 阅读 · 0 评论 -
设计模式---单例
读书时,第一次接触的就是单例,显而易见就是这个类不可以建立多个对象,共享一个,不多建立。还分饿汉 、懒汉(直接成员属性new一个)public class test { public static test test; private test(){ } public static test getTest(){ synchronize...原创 2018-10-23 22:46:42 · 100 阅读 · 0 评论 -
设计模式---工厂
工厂模式,简单工厂,把new的细节给封装起来,你传个关键字进来我就new给你。至于怎么new你无需关心。java,生成对象,一、new二、反射class.forname().newInstance();(Constructor也属于这个。Constructor<XX> constructor = XX.class.getConstructor();XX xx = const...原创 2018-10-24 20:42:51 · 92 阅读 · 0 评论 -
设计模式---抽象工厂
简单工厂,把外面满天飞的new搞进来了。不局限于内部生成对象一定要new。经典的Class.forname("").newInstance();由类名生成类对象,再实例化实例对象。抽象工厂,讲究的是类型的产品对象,不是杂乱无章的产品对象。产品有类,接口。工厂有类,接口。工厂一对多的产品组合。如果新来一个产品类别。那得搞多一个产品接口,类。原有工厂如果也跟他拉上关系,也得改,赋予原有工厂修改...原创 2018-10-27 14:30:19 · 151 阅读 · 0 评论 -
设计模式---策略
策略相对比较简单,jdk经典例子,treemap中的比较算法。算法各种各样你想怎么玩,你自己定义,算法实现类。算法接口jdk设置好。且以构造方法的形式注入成员属性中。treemap的比对就靠这玩意调用compare方法玩。uml其实就是算法接口,算法实现类,他们设计者称环境类,搭配算法调用的类。public class Comparator1 implements java.util.Co...原创 2018-10-27 18:18:42 · 102 阅读 · 0 评论 -
设计模式---门面(外观)
把内部系统多个接口,统一封装在一个接口,供外部调用。基于内部实现中无法把相应方法设置private,又不想暴露给调用者看到,就多了一个总接口。我觉得超多地方用到。大凡涉及封装多个类对应的方法,在一个类方法里调用。都可以说成外观。因为它的思想就是把各个方法,统一成一个方法,把事情的各个步骤综合起来。比如controller调用service调用dao。...原创 2018-11-01 08:01:04 · 209 阅读 · 0 评论 -
设计模式---建造
建造接口建造者建造对象建造指挥者 public class People{ public String hand; public String head; public String foot; public String getHand() { return hand; ...原创 2018-11-28 00:19:23 · 126 阅读 · 0 评论