自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 浅谈设计模式之命令模式

命令模式是将发起命令者(比如万能遥控器)和接收命令者(比如电视、空调)进行解耦的一种模式。命令模式通过将命令封装成对象,让每个命令对象实现同一个接口,这样对于命令发起者,只需要持有该命令对象,并调用接口中通用的方法即可,而不需要关心命令对象实现的细节。命令模式的主要代码如下: 首先是命令的接口,它对外暴露一个方法: public interface Command{ void execute(); } 然后是命令对象,这个对象会持有一个具体的目标类,拿tv举例: public class TVTurnOnC

2020-06-01 19:37:30 195

原创 浅谈设计模式之单例模式

单例模式应该是最好理解的模式了,他保证一个类在全局只有一个实例,并且提供一个全局访问该实例的方法。对于线程池,日志这种就需要使用单例了,单例有两种实现方法,懒汉式和饿汉式,JVM中使用的是懒汉式,即需要的时候才进行创建。懒汉式创建单例的方法如下: public class Singleton{ //使用volatile避免指令重排 private volatile static Singleton singleton; private Singleton(){ } public static Singl

2020-05-29 08:39:16 170

原创 浅谈设计模式之工厂模式

工厂模式是一种创建类型的模式,通过将工厂方法延迟到子类实现,来避免依赖具体类。在工厂模式里有四个角色,工厂抽象类,具体工厂类,抽象产品类,具体产品类。 抽象工厂模式定义了一个产品族。首先实现一个接口定义产品族,对于产品族中的每个方法,都对应一个具体的产品的实现,这种实现也通常是用工厂方法来实现的。 ...

2020-05-28 19:23:30 185

原创 浅谈设计模式之装饰者模式

装饰者模式,即我想在不改变A类的情况下,为A类添加新的职责,传统的做法可能是用继承的方式,实现类B extends A,但是这样做的缺点是:B违反了单一职责,如果今后要装饰的功能多了,得每次都实现一个新类,并且装饰是不可调顺序的(A->B->C可以,A->C->B得再实现),带来的后果是系统会越来越复杂,类越来越多; 装饰者模式通过让被装饰对象A和装饰者实现同一个抽象类的方法,这样就可以在原来用A的地方,直接可以传一个用B或C封装的类,因为对使用者来说,我只需要认这个抽象类就好了。拿

2020-05-26 20:33:15 181

原创 浅谈设计模式之观察者模式

观察者模式是一种用途很大的设计模式,可以将主动查询转为被动等待,即“你不要call我,有事我会call你”,这样可以大大减少交互的次数。观察者模式中有两个角色,观察者(Observer)和被观察者(Subject,也称为主题),观察者可以决定要不要订阅主题,如果订阅了,主题会在自身发生变化的时候通知这些关心的观察者;如果你不关心这个主题了,也可以把自己从列表移除,观察者模式的主要代码如下,对于主题的实现(已省略Subject的interface): public class ConcreteSubj..

2020-05-25 18:27:48 195

原创 浅谈设计模式之策略模式

策略模式,即通过封装算法簇接口,来实现在运行时的动态绑定。首先我们要定义接口,即你想让类拥有的能力。对于鸭子来说,叫(quack)和飞(fly)即可定义成两种能力,分别定义为: public interface QuackBehavior{ void quack(){} } public interface FlyBehavior{ void fly(){} } 接下来我们可以通过实现接口来定义不同的动作,比如flyWithWings,最后通过在目标类Duck中包含这两个接口,...

2020-05-25 08:52:29 129

原创 浅谈设计模式之适配器模式

生活当中就有很多适配器的例子,220v转110v的电源接头,各类usb转换头,其实适配器做的就是让调用方觉得你就是他想要的对象,所谓狸猫换太子,说的就是他了。 比如我有一个鸭子接口(Duck),它会嘎嘎叫(quack),也会飞(fly); 现在我有只鹅也想混入鸭子当中,但是鹅的叫法是哦哦(honk),鹅太胖了只会跑(run),那我想把鹅加入鸭群,就需要实现一个DuckAdaptor,由这个adaptor去实现duck接口; public DuckAdaptor implement Duck { privat

2020-05-17 11:29:29 150

原创 浅谈设计模式之状态模式

当系统中存在多种互相之间独立的状态,每种状态都面向同样的行为的时候,就可以通过状态模式来进行区分。状态模式有两个主要的对象,一个是操作类,一个是状态类。拿自动糖果贩卖机举例,这个贩卖机(machine)提供了操作,而贩卖机存在几种状态,分别是售空状态(SoldOutState),已投币状态(HasMoneyState),未投币状态(NoMoneyState),售出状态(SoldState),他们都实现状态接口(State),并实现处理每一个动作的方法。一开始糖果机里没有糖果,就属于售空状态,需要初始化这个m

2020-05-17 11:01:11 213

原创 浅谈设计模式之模板方法模式

模板方法模式,即通过将一些公用的方法放在父类,而将一些个性化的方法延迟到子类实现,来达到可扩展的效果。父类声明成抽象类而不是接口,这样父类就可以实现一些通用的方法。比如做披萨和做包子,都是需要和面,但是包的动作是不一样的。 ...

2020-05-12 20:10:22 113

原创 浅谈设计模式之外观模式

外观模式简单的说就是把一些复杂的接口进行整理,整理后对外只暴露一个接口,这样做的好处就是可以封装一些标准的动作,比如洗碗机按一下启动就会自动顺序执行加水浸泡–洗碗–烘干 的全流程。对于复杂的系统,就需要借助外观模式进行一层层的包装,来达到很好的解读。 ...

2020-05-12 20:01:02 144

原创 VS平台下制作简单的播放器(利用Qt类库)

最近在学Qt,但是发现在Qt Creator 下能正常运行的程序想直接移植到VS下还是要花点功夫的。由于在Creator当中并没有UI_xx.h文件,项目当中的声明和creator不一样,所以在摸索过程中遇到了一些障碍,本文在VS中已经配置好Qt的前提下,在VS平台下制作了一款播放器,支持mp3和mp4格式。下面贴上代码: 1.在ui_xx.h下先画好界面,如下图 接下来是.h文件,代

2015-04-28 10:47:44 1855 1

classfinal-fatjar-1.2.1.jar

ClassFinal是一款java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework;可避免源码泄漏或字节码被反编译。执行java -jar classfinal-fatjar.jar 后按提示即可完成加密。

2021-07-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除