【Java精品源码栏目提醒】:网学会员鉴于大家对Java精品源码十分关注,论文会员在此为大家搜集整理了“java各个设计模式代码实现总结 - 其它资料”一文,供大家参考学习
第一章 静态工厂设计模式默认的包,只是包内共享。
Protected 的是包内和子类供共享。
1、 要生产的产品,要设计成接口 (1) public interface IMusicBox public void playBox (2) public class PinBox implements IMusicBox public void playBox System.out.printlnquot钢琴曲quot (3)public class VolinBox implements IMusicBox public void playBox System.out.printlnquot小提琴quot 2、 工厂的代码 public class MusicBoxFactory public static IMusicBox createIMusicBoxString name IMusicBox imusic null try imusic IMusicBox Class.forNamename.newInstance catch InstantiationException e e.printStackTrace catch IllegalAccessException e e.printStackTrace catch ClassNotFoundException e e.printStackTrace return imusic 3、 测试的类 public class Demo public void palyMusicIMusicBox iMusicBox iMusicBox.playBox public static void mainString args Demo d new Demo d.palyMusicMusicBoxFactory.createIMusicBoxquotPinBoxquot d.palyMusicMusicBoxFactory.createIMusicBoxquotVolinBoxquot 第二章 抽象工厂设计模式1、 问题描述 一个顾客想购买一台电脑,电脑有两种 mac 和 pc 两种品牌。
假设电脑中只有 cpu、ram 两个部件。
2、 要生产的部件 (1) public interface IComputerProdure public ICpu createCpu public IRam createRam(2)public interface ICpu public void sayCpuName(3)public interface IRam public void sayRamName(4)public class MacCpu implements ICpu public void sayCpuName System.out.printlnquot我是 mac 的 cpuquot 5 public class MacRam implements IRam public void sayRamName System.out.printlnquot我是 mac 的 ramquot 6 public class PcCpu implements ICpu public void sayCpuName System.out.printlnquot我是 pc 的 cpuquot 7 public class PcRam implements IRam public void sayRamName System.out.printlnquot我是pc 的 ramquot 3、 生产计算机的工厂(1)public class MacComputerFactory implements IComputerProdure public ICpu createCpu return new MacCpu public IRam createRam return new MacRam (2)public class PcComputerFactory implements IComputerProdure public ICpu createCpu return new PcCpu public IRam createRam return new PcRam 3、抽象工厂的好处 当增加新的电脑的类型的时候,就不用修改原来的代码,直接上新的电脑品牌继承 2 中第一个类就可以了。
但是解决不了的问题是,当电脑中增加新的部件的时候,还是需要修改代码。
第三章 构造模式1、 问题的描述---迷宫程序的生成 迷宫使用二维数组来定义,0 表示道路,1 表示墙,2 表示宝物,根据所定义的二维迷宫数组,您想要程序自动产生各种不同材质的迷宫,例如砖墙迷宫,钻石迷宫等等。
角色分析:工程设计师、建筑工人 设计思想:建筑师的类中,聚合了一个建筑工人的接口,这样传入进来不同的建筑工人,就可以建立不同的工程。
2、工人接口 (1) public interface IMazeBuilder public void createRoadBlock public void createWallBlock public void createTreasureBlock public void nextRow(2)实现建筑工人接口的类1 public class DiamondMazeBuilder implements IMazeBuilder public void createRoadBlock System.out.printquot quot public void createTreasureBlock System.out.printquot quot public void createWallBlock System.out.printquot◇quot public void nextRow System.out.println (3)实现建筑工人接口的类2 public class SolidMazeBuilder implements IMazeBuilder public void createRoadBlock System.out.printq