![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
23种设计模式
文章平均质量分 64
zz的的
这个作者很懒,什么都没留下…
展开
-
原型模式(非常简单)
1.浅克隆,如果People对象中有一个引用类型的属性,则克隆出来的对象会指向同一个对象package cloneModel;public class Person implements Cloneable{ private String head; private String body; private String foot; public String getHead() { retur...原创 2018-06-11 14:25:38 · 231 阅读 · 0 评论 -
建造者模式
package com.yf.model;public abstract class Builder { public abstract void buildCPU(); public abstract void buildMainBoard(); public abstract void buildHD(); public abstract Computer getComputer(...原创 2018-06-20 10:44:01 · 76 阅读 · 0 评论 -
静态代理和JDK动态代理及cglib动态代理
package com.proxy;import java.util.Random;/** * Created by 79782 on 2018/6/30. */public class Car implements MoveAble { @Override public void move() { try { Thread...原创 2018-06-30 10:07:00 · 154 阅读 · 0 评论 -
23设计模式之适配器模式
定义一个接口,增加需要实现的方法,在不需要此功能的接口的实现类中不实现。优点:1、可以让任何两个没有关联的类一起运行。 2、提高了类的复用。 3、增加了类的透明度。 4、灵活性好。缺点:1、过多地使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。因此如果不是很有必要,可以不使用适配器,...原创 2018-06-11 09:59:17 · 86 阅读 · 0 评论 -
23种设计模式之很好理解的模板模式
public abstract class RefreshBeverage { /* final 阻止子类对父类的重写 */ public final void prepareBeverageTemplate(){ boilWater(); brew(); pourInCop(); addCondim...原创 2018-06-10 16:00:21 · 206 阅读 · 0 评论 -
设计模式之很简单的工厂方法模式和抽象工厂模式
什么情况下用工厂模式:1.有一组类似的对象需要创建。2.在编码时不需要创建哪种类的实例。3.系统需要考虑扩展性,高内聚,低耦合。主要用了反射public interface IHair { void draw();}public class LeftHair implements IHair { public void draw() { System.out.pr...原创 2018-06-10 14:58:31 · 109 阅读 · 0 评论 -
设计模式之最简单的单例模式
public class SingleTon { //1.将构造方法私有化,不允许外部直接创建对象 private SingleTon() { } //类加载时 static就被初始化 恶汉 private static SingleTon instance=new SingleTon(); public static SingleTon get...原创 2018-06-10 14:22:47 · 644 阅读 · 0 评论 -
23大设计模式之策略模式
策略模式每个算法都有自己的类只要在分析过程中需要在不同时间应用不同的业务规则时,可以考虑用这个模式package com.test.two;public class Cart { private int count; private double perMoney; public int getCount() { return count; } public void setCount(int ...原创 2018-06-08 17:46:52 · 190 阅读 · 0 评论 -
代理模式(动态代理)简单通俗易懂的例子
静态代理的缺点:如果接口中增加方法,所有实现类要实现这个方法外所有代理类也要实现这个方法。动态代理:目的:代理类不重写接口的方法,在程序运行中动态绑定要代理的方法;public interface MoveAble2 { void run(); void use();}public class Jeep2 implements MoveAble2 { public vo...原创 2018-06-10 12:55:50 · 1305 阅读 · 1 评论 -
吐血总结代理模式(静态代理)
直接上代码public interface MoveAble { void run();}public class Car implements MoveAble { public void run() { System.out.println("running...."); }}public class testMain { public...原创 2018-06-10 09:25:32 · 167 阅读 · 0 评论 -
设计模式的理解基础 希望自己时刻牢记
设计模式的六大原则总原则:开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类等,后面的具体设计中我们会提到这点。1、单一职责原则不要存在多于一个导致类变更的原因,也就是...原创 2018-06-10 10:00:55 · 103 阅读 · 0 评论 -
中介者模式
package mediatorModel;public abstract class AbstractColleague { protected int number; public int getNumber() { return number; } public void setNumber(in...原创 2018-06-13 14:14:02 · 84 阅读 · 0 评论 -
责任链模式(简单版)
package com.yf.chainModel;public abstract class LeaveHandler { protected LeaveHandler successor; public void setSuccessor(LeaveHandler successor){ this.successor=successor; } public abstract v...原创 2018-06-20 19:28:52 · 233 阅读 · 0 评论 -
门面模式
每个Computer都有CPU、Memory、Disk。在Computer开启和关闭的时候,相应的部件也会开启和关闭,所以,使用了该外观模式后,会使用户和部件之间解耦。很简单...原创 2018-06-20 18:01:10 · 69 阅读 · 0 评论 -
设计模式分类
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。...原创 2018-06-11 14:30:25 · 85 阅读 · 0 评论 -
避免反射和序列化攻击的单例设计模式
package com.yf.test.demo;/** * 饿汉式,不支持懒加载 */public class MyClass1 { private MyClass1(){} private static MyClass1 instance=new MyClass1(); //饿汉式 public static MyClass1 getInstan...原创 2018-12-10 11:10:42 · 222 阅读 · 0 评论