Java中的适配器模式
适配器模式简介
适配器模式是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。
类模式
要被适配的类TV和类Wire123456789101112131415//要被适配的类:电视public class TV { //电视剧需要一个电源适配器,就可以供电,开机 public void open(IPowerAdapter iPowerAdapter) { //打开电视,需要电,需要连接电线,需要一个电源适配器 iPowerAdapter.power(); }}//要被适配接入的类:电线public class Wire { public void supply() { System.out.println("供上电了..."); }}
电源适配器接口IPowerAdapter12345//电源适配 ...
Mac OS上用命令行执行C程序
用命令行新建C文件1touch hello.c
编辑C文件1vim hello.c
编写C程序代码123456#include <stdio.h>int main(){ printf("Hello World!"); return 0;}
编译C程序文件1cc -c hello.c
生成可执行文件1cc hello.o
执行文件1./a.out
Java中的原型模式
原型模式简介
模式属于创建型模式,它提供了一种创建对象的最佳方式。
用于创建重复的对象,同时又能保证性能。
这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。
例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。
浅克隆
类Book实现Cloneable接口并重写clone方法1234567891011121314151617181920212223242526272829303132333435363738394041public class Book implements Cloneable { private String name;//书名 private Date publishDate;//发布日期 public Book() { } public Book(String name, Date publishDate) { this.n ...
Java中的建造者模式
建造者模式简介
模式属于创建型模式,它提供了一种创建对象的最佳方式。
使用多个简单的对象一步一步构建成一个复杂的对象。
一个Builder类会一步一步构造最终的对象。该Builder类是独立于其他对象的。
指挥者模式
产品类Product123456789101112131415161718192021222324252627282930313233343536373839//产品public class Product { private String one; private String two; private String three; public String getOne() { return one; } public void setOne(String one) { this.one = one; } public String getTwo() { return two; } publi ...
Java中的抽象工厂模式
抽象工厂模式简介
模式属于创建型模式,它提供了一种创建对象的最佳方式。
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。
在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
接口IComputerProduct123456//电脑产品接口public interface IComputerProduct { void start(); void shutdown();}
子类AComputer和BComputer12345678910111213141516171819202122232425//A电脑public class AComputer implements IComputerProduct { @Override public void start() { System.out.println("开启A电脑"); } ...
Java中的工厂模式
工厂模式简介
模式属于创建型模式,它提供了一种创建对象的最佳方式。
在工厂模式中,创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
静态简单工厂模式
接口Animal123public interface Animal { String getName();}
子类Dog和Cat12345678910111213public class Dog implements Animal { @Override public String getName() { return "Dog"; }}public class Cat implements Animal { @Override public String getName() { return "Cat"; }}
工厂类12345678910111213public class Ani ...
Java中的单例模式
单例模式简介
模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。
这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
主要分为:饿汉模式和懒汉模式
饿汉模式
123456789101112//饿汉模式public class Hungry { private static Hungry hungry = new Hungry(); private Hungry() { } public static Hungry getInstance() { return hungry; }}
懒汉模式(单线程)
12345678910111213public class LazyMan01 { private static LazyMan01 lazyMan; private LazyMan01() { } public ...
上传docker镜像到阿里云镜像中心实践
注册并登录阿里云账户需提前在阿里云官网,注册一个用户
进入控制后台
进入容器镜像服务
创建个人实例
设置Registry密码
创建命名空间
创建镜像仓库
下载镜像1docker pull tomcat //下载tomcat镜像
启动容器12docker run -d --name="MyTomcat" -p 8888:8080 tomcat //后台方式,以外部主机端口8888映射容器端口8080,运行Tomcat,容器别名为MyTomcat
1curl localhost:8888 //测试访问显示404
此处要注意,【有坑】!
1docker exec -it 2dd5319e4047 /bin/bash //进入容器
1cp -r webapps.dist/* webapps //将webapps.dist目录下的所以文件,拷贝到webapps目录
1curl localhost:8888 //测试访问显示正常
提交生成镜像123docker commit --help / ...
上传docker镜像到dockerhub实践
下载镜像1docker pull tomcat //下载tomcat镜像
启动容器12docker run -d --name="MyTomcat" -p 8888:8080 tomcat //后台方式,以外部主机端口8888映射容器端口8080,运行Tomcat,容器别名为MyTomcat
1curl localhost:8888 //测试访问显示404
此处要注意,【有坑】!
1docker exec -it 2dd5319e4047 /bin/bash //进入容器
1cp -r webapps.dist/* webapps //将webapps.dist目录下的所以文件,拷贝到webapps目录
1curl localhost:8888 //测试访问显示正常
提交生成镜像123docker commit --help //查看commit帮助 -a 作者 -m 提交的信息内容
123docker commit -a "codingdgs ...
Java中稀疏数组的使用
稀疏数组当一个数组中大部分元素是0,或者是一个相同的值时,可以使用稀疏数组来保存该数组。并且稀疏数组,行数为:原来数组非0元素个数+1;列数为:3。即:稀疏数组列数总是3。
12345原数组总行数 原数组总列数 原数组非0元素个数原数组非0元素行索引 原数组非0元素列索引 原数组非0元素值...
稀疏数组,第一行(即:0行),第一列存储原数组的总行数,第二列存储原数组的总列数,第三列存储非零元素的数量; 其他行结构相同,每一行存储一条非0元素信息。
代码如下
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758public static void main(String[] args) { System.out.println("原来数组为:"); int[][] array1 = ...