设计模式
为不为
这个作者很懒,什么都没留下…
展开
-
java设计模式(精通系列)-基础uml概念
前言:要想搞懂设计模式,uml 类图是必须要了解的。比起好几个类的代码,uml类图直观又好懂。首先先下载个uml 制图工具,这里我推荐umlet 轻巧方便。下面进入正题:在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Depend原创 2017-10-10 15:04:00 · 298 阅读 · 0 评论 -
java设计模式(精通系列)-command
命令模式: 代码如下:public class App { public static void main(String[] args) { Wizard wizard=new Wizard(); Goblin goblin=new Goblin(); goblin.printStatus(); wizard.castSpell原创 2017-10-13 16:19:38 · 520 阅读 · 0 评论 -
java设计模式(精通系列)-Decorator
装饰模式:动态的给一个对象加一些额外的功能 public class App { public static void main(String[] args) { System.out.println("比比鸟出现了"); Troll troll=new SimpleTroll(); troll.attack(); Syste原创 2017-10-13 15:16:29 · 207 阅读 · 0 评论 -
java设计模式(精通系列)-proxy
代理模式:通过代理调用真正的接口public class App { public static void main(String[] args) { WizardTowerProxy proxy=new WizardTowerProxy(new IvoryTower()); proxy.enter(new Wizard("bob")); pr原创 2017-10-13 14:14:27 · 452 阅读 · 0 评论 -
设计模式之状态
状态模式:无非就是状态的改变 public class App { public static void main(String[] args) { Mammoth mammoth=new Mammoth(); mammoth.observe(); mammoth.timePasses(); mammoth.observe()原创 2017-10-20 09:32:49 · 155 阅读 · 0 评论 -
设计模式之访问者模式
访问者模式可以在不同的操作时不需要修改原来的接口 /** * Created by gmy on 2017/10/20. */public class App { public static void main(String[] args) { Commander commander = new Commander(new Sergea原创 2017-10-20 10:38:14 · 167 阅读 · 0 评论 -
设计模式之孪生兄弟
当你开启一个进程,你点击时停止这个进程。再点击时开启这个进程public class App { public static void main(String[] args) throws InterruptedException { BallItem ballItem=new BallItem(); BallThread ballThread=new Bal原创 2017-10-20 09:58:55 · 444 阅读 · 0 评论 -
java设计模式(精通系列)-factory
工厂模式:利用工厂来创建相应的类 public class App { public static void main(String[] args) { WeaponFactory factory=WeaponFactory.factory(builder -> { builder.add(WeaponType.SWORD,Sword::new);原创 2017-10-11 14:17:12 · 278 阅读 · 0 评论 -
java设计模式(精通系列)-Builder模式
建造者模式:跟构造器相比,builder模式更加的灵活 假如一个英雄有如下属性 private final Profession profession; private final String name; private final HairType hairType; private final HairColor hairColor; private f原创 2017-10-11 10:57:09 · 238 阅读 · 0 评论 -
设计模式之模板方法
跟策略方法类似,就是换方法public class App { public static void main(String[] args) { HalflingThief thief=new HalflingThief(new HitAndRunMethod()); thief.steal(); thief.changeMethod(new原创 2017-10-20 09:12:15 · 201 阅读 · 0 评论 -
java设计模式(精通系列)-Bridge模式
桥接模式:解耦作用。 设想如果要剑,锤子等武器,我们至少需要2个武器类,但是如果我们的武器需要附上不同的魔法,如飞行、噬魂等,此时至少有如下两种设计方案: •第一种设计方案是为每一种武器都提供一套各种魔法的版本。 •第二种设计方案是根据实际需要对武器和魔法进行组合。明显我们需要第二种 public class App { public static void main(String[原创 2017-10-11 09:32:21 · 368 阅读 · 0 评论 -
java设计模式(精通系列)-Adapter模式
适配器模式:就是原先的接口不适用,需要一个适配器换到另一个接口如图所示: 核心代码就是:FishingBoat重写了原接口RowingBoat的row()方法例子:public class App { public static void main(String[] args) { Captain captain=new Captain(new FishingBoatAda原创 2017-10-11 08:26:07 · 367 阅读 · 0 评论 -
java设计模式(精通系列)-策略模式(Strategy)
策略模式:更改不同的策略public class App { public static void main(String[] args) { DragonSlayer dragonSlayer=new DragonSlayer(new MeleeStrategy()); dragonSlayer.goToBattle(); System.out原创 2017-10-14 08:11:45 · 220 阅读 · 0 评论