享元模式
享元模式1.定义它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。(例如各种池技术就是使用的享元模式)
2.具体实现2.1代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960package 设计模式;public class FlyweightPattern { public static void main(String[] args) { FlyweightFactory factory = new FlyweightFactory(); Flyweight f01 = factory.getFlyweight("a&qu ...
代理模式
代理模式1.定义为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
2.具体实现2.1代码
静态代理:静态代理中,我们对目标对象的每个方法的增强都是手动完成的,十分不灵活;从 JVM 层面来说, 静态代理在编译时就将接口、实现类、代理类这些都变成了一个个实际的 class 文件。
1234567891011121314151617181920212223242526272829303132333435package 设计模式;public class ProxyPattern01 { public static void main(String[] args) { IphoneProxy iphoneProxy = new IphoneProxy(new IphoneFactoryImpl()); iphoneProxy.create(); }}//服务类接口interface IphoneFactory ...
模板方法模式
模板模式1.定义在模板模式(Template Pattern)中,定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。
2.具体实现2.1代码1234567891011121314151617181920212223242526272829303132333435363738package 设计模式;public class TemplateMethodPattern { public static void main(String[] args) { AbstractClass abstractClass = new ConcreteClass(); abstractClass.TemplateMethod(); }}//抽象模板类abstract class AbstractClass{ //模板方法 public void TemplateMethod() { Sp ...
适配器模式
适配器模式1.定义适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。
2.具体实现2.1代码
类适配器模式的代码如下:
1234567891011121314151617181920212223242526package 设计模式;public class ClassAdapterPattern { public static void main(String[] args) { Target target = new ClassAdapter(); target.request(); }}//目标接口interface Target { void request();}//适配者接口class Adaptee { public void specificRequest() { System.out.printl ...
观察者模式
观察者模式1.定义观察者模式(有时又被称为模型(Model)-视图(View)模式、源-收听者(Listener)模式或从属者模式),在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。
2.具体实现2.1类图
2.2 代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960package 设计模式;public class ObserverPattern { public static void main(String[] args) { Ring ring = new OverClassRing(); Student student1 = new MiddleSchoolStudent(); Student student2 = ...
单例模式
单例模式1.定义单例模式,属于创建类型的一种常用的设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例,保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2.具体实现2.1常用实现方式饿汉式1234567public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { return instance; } }
懒汉式1234567891011public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() ...
抽象工厂模式
抽象工厂模式1.定义抽象工厂模式(Abstract Factory Pattern)隶属于设计模式中的创建型模式,用于产品族的构建。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体情况下,创建多个产品族中的产品对象。可以看做是简单工厂的改进(或进一步抽象)。
2.具体实现2.1类图
2.2代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139package 设计模式;/** * 抽象模式 * @author w ...
工厂方法模式
工厂方法模式1.定义工厂方法模式(FACTORY METHOD)是一种常用的类创建型设计模式,意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。
2.具体实现2.1类图
2.2代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253package 设计模式;public class FactoryMethodPattern { public static void main(String[] args) { Water water = new DrinksFactory().createWater(); Water water1 = new SodaWaterFactory().createWater(); water.show(); ...
简单工厂模式
简单工厂模式1.定义简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,简而言之就是提供一个工厂接收不同的参数来提供不同的对象。
2.具体实现2.1类图
2.2 代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556package 设计模式;public class SimpleFactoryPattern { public static void main(String[] args) { Shoes nike = SimpleFactory.getShoes("Nike"); nike.createShoes(); Shoes adidas = SimpleFactory.getShoes("Adidas"); adidas.createShoes(); ...
Git的介绍与简单使用
Git的介绍和简单使用Git的概述
Git的描述:Git是一个开源的分布式版本控制系统
作用:可以有效、高速地处理从很小到非常大的项目版本管理。
优点:
适合分布式开发,强调个体。
公共服务器压力和数据量都不会太大。
速度快、灵活。
任意两个开发者之间可以很容易的解决冲突。
离线工作。
缺点
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
Git的安装在官网下载,然后一直next即可。
Git的本地结构
Git的基本命令
初始化本地仓库:git init
添加文件:git add
提交文件: git commit -m “备注”
查看本地仓库状态:git status
查看提交日志:
git log
git log –pretty=oneline
git log –oneline
git reflog (常用)
进入历史版本:git reset –hard 版本号 (hard 可以换成mixed 暂存区和本地库同步调整,soft 只有本地库调整)
比对工作区和暂存区:git diff
创建分支:git branch ...