首页 > 其他分享 >设计模式-享元模式

设计模式-享元模式

时间:2023-10-30 21:55:06浏览次数:28  
标签:享元 draw 设计模式 whitePiece int 模式 color Piece public

import java.nio.channels.Pipe;

public class 享元模式 {
    public static void main(String[] args)
    {
        pieceFactory factory=new pieceFactory();
        Piece whitePiece=factory.getPiece(0);
        Piece whitePiece1=factory.getPiece(1);
        Piece whitePiece2=factory.getPiece(0);
        System.out.println(whitePiece);
        System.out.println(whitePiece);
        System.out.println(whitePiece);//位于同一位置

        whitePiece.draw(25,30);

    }
}

class pieceFactory{
    private Piece[] pieces={new whitePiece(),new blackPiece()};

    public Piece getPiece(int key)
    {
        if(key==0)
            return pieces[0];
        else
            return pieces[1];
    }
}
abstract class Piece{
    protected String color;
    public abstract void draw(int x,int y);
}
class whitePiece extends Piece{
    public whitePiece()
    {
        this.color="white";
    }
    @Override
    public void draw(int x,int y)
    {
        System.out.println("draw a color:  "+color+"piece x:  "+x+"piece y:  "+y);
    }
}
class blackPiece extends Piece{
    public blackPiece()
    {
        this.color="black";
    }
    @Override
    public void draw(int x,int y)
    {
        System.out.println("draw a color:  "+color+"piece x:  "+x+"piece y:  "+y);
    }
}

运行结果

 

标签:享元,draw,设计模式,whitePiece,int,模式,color,Piece,public
From: https://www.cnblogs.com/cinan/p/17798950.html

相关文章

  • 查看调整cpu频率及模式
    使用cpufrequtils查看调整cpu频率及模式cpufrequtils是一个查看和修改CPU频率GHz的工具有些物理服务器使用默认频率进行运行,这时可以使用该工具进行就该CPU的核心频率安装:aptinstallcpufrequtilsyuminstallcpufrequtils使用:#查看全部核心详细信息cpufreq-info#查......
  • 查看调整cpu频率及模式
    使用cpufrequtils查看调整cpu频率及模式cpufrequtils是一个查看和修改CPU频率GHz的工具有些物理服务器使用默认频率进行运行,这时可以使用该工具进行就该CPU的核心频率安装:aptinstallcpufrequtilsyuminstallcpufrequtils使用:#查看全部核心详细信息cpufreq-info#......
  • 软件设计-装饰器模式
    publicclass装饰器模式{publicstaticvoidmain(String[]args){//第一种写法Personperson=newStudent("张三");person.Operation();System.out.println();person=newDecoratorA(person);person.Oper......
  • 软件设计-组合模式
    importjava.util.ArrayList;importjava.util.List;publicclass组合模式{publicstaticvoidmain(String[]args){AbstractFilefileA=newFile("fileA");AbstractFilefileB=newFile("fileB");//fileA.printN......
  • 设计模式—创建型模式之工厂模式
    设计模式—创建型模式之工厂模式工厂模式(FactoryPattern)提供了一种创建对象的最佳方式。我们不必关心对象的创建细节,只需要根据不同情况获取不同产品即可。简单工厂模式比如我们有造车的工厂,来生产车,我们先定义一个抽象车产品://抽象车产品类publicabstractclassAbstract......
  • 生产者消费者模式下实现多batch延时推理
    生产者消费者模式下实现多batch延时推理需求分析在实际推理过程中为了实现较高的吞吐量和较高的资源利用率,往往会使用多线程来收集多次请求,并组合形成多batch下的模型推理,一种常见的实现便是生产者和消费者模式,其需求如下:生产者收集提交的请求,消费者对请求进行消费,并将结果返......
  • 设计模式-工厂方法(Factory Method)
    1.定义 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。2.示例创建一个接口:publicinterfaceShape{voiddraw();}创建接口具体实现类 publicclassSquareimplementsShape{@Overridepublicvoiddraw(){......
  • 设计模式-装饰器模式
    目录设计模式-装饰器模式什么是装饰器设计模式?java示例设计模式-装饰器模式什么是装饰器设计模式?装饰器设计模式(DecoratorPattern)是一种结构型设计模式,它允许你通过将对象包装在一个装饰器类中来动态地扩展其功能。装饰器模式能够在不改变原有对象的情况下,通过添加新的装饰器类......
  • Centos8进入单用户模式重置密码方法
    开机出现grubbootloader开机选项菜单时,立即点击键盘任意鍵,bootloader会暂停。按下e,编辑选项菜单,移动上下鍵至linux16核心命令行:加入rd.break。linux16/vmlinuz-3.10.0-123.el7.x86_64root=UUID=449d53d1-84c2-40c0-b05e-d1900591d71brord.lvm.lv=vg_kvm7usb/swapcra......
  • JavaScript 中的单例模式
    单例模式是JavaScript中最流行的设计模式之一。单例模式的优点全球访问点:提供对实例的单点访问,可以轻松管理全球资源。内存效率:该模式确保只有一个实例,这特别节省内存。延迟初始化:仅在需要时才创建实例,从而提高性能这是一种创建模式,可确保类只有一个实例,同时提供对该实例......