设计模式
Fire_Sky_Ho
这个作者很懒,什么都没留下…
展开
-
动态代理 原理大致讲解
案例以下案例摘抄 动态代理模式案例(代码)讲解public interface IManFactory { // 卖男性娃娃 void saleMan(float length);}public class ManFactory implements IManFactory { @Override public void saleMan(float length) { System.out.println("男性" + length); }}/** * 代理商,实现Inv原创 2020-12-06 17:47:22 · 504 阅读 · 4 评论 -
动态代理模式案例(代码)讲解
需求如上图,张三及其跟他有关系的人需要购买A,B公司的产品 ,比如张三向A公司买女性娃娃,张三老婆向B公司买男性娃娃;但是因为在海外,所以只能向代购公司购买,而且代购公司还能提供购买前后的服务,比如买前咨询,买后问怎么用。实现1.卖男性娃娃的工厂public interface IManFactory { // 卖男性娃娃 public void saleMan(fl...原创 2020-03-28 17:37:21 · 380 阅读 · 1 评论 -
装饰者模式案例(代码)讲解
参考:https://blog.csdn.net/cauchyweierstrass/article/details/48240147装饰者模式中类或接口的作用:抽象被装饰者:需要增加修饰的抽象对象。具体被装饰者:定义一个将要接收附加责任的类。装饰(Decorator)角色:持有一个抽象被装饰者对象的实例,并继承它具体装饰(ConcreteDecorator)角色:负责给具体被装饰者...原创 2020-01-19 12:34:06 · 439 阅读 · 2 评论 -
模板模式案例(代码)讲解
模板模式结构AbstractClass:抽象类。有一堆方法(A,B,C......每个方法可以使具体的,也可以是抽象的),和一个规定执行这些方法(A,B,C......)顺序或者说算法的方法(Regulations)。 ConcreteClass:具体实现类。用于实现在父类中声明的抽象基本操作,也可以覆盖在父类中已经实现的具体基本操作。例子:两个电脑游戏:篮球游戏和足球游戏publi...原创 2020-03-13 11:32:19 · 373 阅读 · 0 评论 -
观察者模式案例(代码)讲解
有个天气数据的API...原创 2020-04-02 21:48:48 · 711 阅读 · 0 评论 -
责任链模式案例(代码)讲解
编写程序完成学校OA系统的采购审批项目:需求采购员采购教学器材 如果金额小于等于5000, 由教学主任审批 如果金额小于等于10000, 由院长审批 如果金额小于等于30000, 由副校长审批 如果金额超过30000以上,有校长审批/** * 抽象审批者 */public abstract class Approver { //下一个处理审批的人 Approv...原创 2020-03-15 22:40:11 · 662 阅读 · 0 评论 -
桥接模式案例(代码)讲解
参考一小点:https://www.cnblogs.com/WindSun/p/10260547.html 图一 ...原创 2020-01-17 11:20:47 · 1028 阅读 · 0 评论 -
适配者模式案例(代码)讲解
对象适配器:通过聚合方式,而不是直接继承案例:220V电压通过充电器转成5V给手机充电public class Voltage220V { public int output(){ System.out.println("220v"); return 220; }}public interface IVolatege5V { ...原创 2020-01-11 13:35:56 · 206 阅读 · 0 评论 -
建造者模式案例(代码)讲解
参考:https://www.cnblogs.com/snailclimb/p/builderpattern.html以KFC为例子,套餐A和B,AB都有两种东西:食物和饮料,服务员根据顾客倾向搭配不同套餐1.Product(产品角色)/** * 一个具体的产品对象,就是这个对象各个组成部分,但是还没有实际产品,只有名字,实际产品还没生产,要交给建造者进行生产 */@Data...原创 2020-01-10 15:42:54 · 633 阅读 · 0 评论 -
原型模式案例(代码)讲解
浅拷贝public class Sheep implements Cloneable { private String name; // 基本数据类型能自动实现深度clone。 private int age; //浅拷贝,每个clone对象都是引用同一个对象 public Sheep sheep; public Sheep getShee...原创 2020-01-04 12:33:24 · 460 阅读 · 0 评论 -
抽象工厂模式案例(代码)讲解
参考链接:https://blog.csdn.net/u014727260/article/details/82560912看玩就懂相当于由一个工厂专门来生产这些品牌,这些品牌工厂又去生产不同产品(数据,路由器)底下这个图很好解释,对比工厂方法,其针对的是产品等级结构,而抽象工厂是针对产品族...原创 2019-12-30 10:40:49 · 282 阅读 · 0 评论 -
单列模式案例(代码)讲解
参考链接:https://www.cnblogs.com/xz816111/p/8470048.htmlpublic class Singleton { //记得加volatile关键字,禁止重排序,否则会不安全,为啥不安全可以参考这篇文章 private static volatile Singleton singleton; public s...原创 2019-12-27 12:36:40 · 332 阅读 · 0 评论 -
对于动态代理的执行过程及源码解析简单说下,很通俗易懂
底层代码根据我自己不完全了解,应该是实现被代理类的接口,然后代理类调用代理接口的里方法时,会去调用InvocationHandler 里重写的的invoke实现的方法,invoke方法里包括了原本的要执行的方法和增强的逻辑代码。定义一个父类接口public interface Fu { public String say();}定义一个子类实现父类public cla...原创 2019-04-13 15:55:53 · 533 阅读 · 0 评论