首页 > 编程语言 >java23种设计模式学习

java23种设计模式学习

时间:2023-03-07 09:13:01浏览次数:38  
标签:kindWomen ProxyClass java23 void class 学习 设计模式 public operate

1、策略模式

理解:就是通过传不同的参数,调用不同的对象

代码实操

public interface IStrategy {
    void operate();
}

public class BackDoor implements IStrategy {
    public void operate() {
        System.out.println("找乔国老帮忙,让吴国太给孙权施加压力");
    }
}

public class GivenGreenLight implements IStrategy {
    public void operate() {
        System.out.println("求吴国太开个绿灯,放行!");
    }
}

public class Context {
    private IStrategy iStrategy;

    public Context(IStrategy iStrategy) {
        this.iStrategy = iStrategy;
    }
    public void operate(){
        this.iStrategy.operate();
    }
}


public class Zhaoyun {
    public static void main(String[] args) {
        Context context=new Context(new BackDoor());
        context.operate();
    }
}

2、代理模式

理解:就是代理类的构造方法设置成接口类型

代码演示:

public interface KindWomen {
    //这种类型的女人能做什么事情呢?
    public void makeEyesWithMan(); //抛媚眼


    public void happyWithMan(); //happy what? You know that!
}


public class PanJinLian implements KindWomen {
    public void happyWithMan() {
        System.out.println("潘金莲在和男人做那个.....");
    }

    public void makeEyesWithMan() {
        System.out.println("潘金莲抛媚眼");
    }
}


public class ProxyClass {
    private KindWomen kindWomen;

    public ProxyClass(KindWomen kindWomen) {
        this.kindWomen = kindWomen;
    }
    public ProxyClass() {
        this.kindWomen = new PanJinLian();
    }
    public void happyWithMan() {
        this.kindWomen.happyWithMan(); //自己老了,干不了,可以让年轻的代替
    }
    public void makeEyesWithMan() {
        this.kindWomen.makeEyesWithMan(); //王婆这么大年龄了,谁看她抛媚眼?!
    }
}


public class Ximenqing {
    public static void main(String[] args) {
        ProxyClass proxyClass=new ProxyClass();
        proxyClass.happyWithMan();

    }
}

3、单例模式

理解:私有化构造方法、提供一个对外的方法来创建对象

代码实现:

public class SingletonPattern {
    private static final SingletonPattern single=new SingletonPattern();

    public SingletonPattern() {
    }
    public synchronized static SingletonPattern getInstance(){
        return single;
    }
}

 

标签:kindWomen,ProxyClass,java23,void,class,学习,设计模式,public,operate
From: https://www.cnblogs.com/liubaihui/p/17186865.html

相关文章

  • 学习日记-Day3
    日期2023-3-6任务列表订正第四章习题:这章概念很多【100%】离散数学第五章:内容不多也不难,写完了【100%】LeetCode513、112:用DFS都能写出来【100%】明天计划英语......
  • 斜率优化学习笔记
    P3195[HNOI2008]玩具装箱容易推出式子\(dp[i]=min(dp[i],dp[j]+(i-j-1+s[i]-s[j]-L)^2)\)故设\(A[i]=i+s[i]-L-1\)(与\(j\)无关的项)\(B[i]=i+s[i]\)故如果\(dp......
  • jenkins学习笔记之九:jenkins认证集成github
    1.github创建OAuth2.jenkins安装并配置github认证插件jenkins配置使用github认证 3.注销重新登录      ......
  • 本周学习小计划
    本周还是主要学习安卓:列一个小计划1.深入学习RecyclerView2.进一步学习Fragment3.进一步学习Service4.Broadcast/Receiver学习5.ContentProvider学习6.优化一下APP的......
  • Book-深入设计模式-访问者模式
    Book-深入设计模式-访问者模式https://refactoringguru.cn/design-patterns/visitor访问者模式亦称:Visitor访问者模式是一种行为设计模式,它能将算法与其所作用的对象......
  • python 学习笔记
     train_test_split函数在机器学习中,我们通常将原始数据按照比例分割为“测试集”和“训练集”,从sklearn.model_selection中调用train_test_split函数 简单用法如......
  • Book-深入设计模式-策略模式
    Book-深入设计模式-策略模式https://refactoringguru.cn/design-patterns/strategy策略模式亦称:Strategy策略模式是一种行为设计模式,它能让你定义一系列算法,并将每......
  • c++基础学习路线
    c++基础学习路线类和对象c/c++内存管理模板IO流继承多态c++11新特新异常智能指针特殊类设计c++的类型转换STL......
  • jenkins学习笔记之八:jenkins认证集成gitlab
    1.gitlab创建新应用2.jenkins安装gitlab插件3.插件安装完成后全局安全配置中使用并配置gitlab认证4.注销重新登录后自动使用gitlab当前登录账号登录jenkins必须和......
  • 【THM】Hacking with PowerShell(Powershell脚本基础)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/powershell通过学习相关知识点:了解PowerShell攻击和PowerShell脚本的基础知识。PowerShell教程参考链......