我写的设计模式的文章总结(2)

2019-03-22 17:12

public DELL的CPU(); }

public class DELL的硬盘 implements 硬盘 {

public DELL的硬盘(); }

//下面是IBM工厂

public class IBM工厂 implements 电脑生产商 {

private CPU IBM的CPU私有变量=null; private 硬盘 IBM的硬盘私有变量=null; private CPU 制造CPU() {

return new IBM的CPU(); }

private 硬盘 制造硬盘() {

return new IBM的CPU(); }

public 电脑 制造电脑() { try{

IBM的CPU私有变量=this.制造CPU(); IBM的硬盘私有变量=this.制造硬盘();

if(IBM的CPU私有变量!=null&&IBM的硬盘私有变量!=null) retrun (IBM的CPU私有变量+IBM的硬盘私有变量); //组装成IBM电脑 }

catch(Exception e) {

System.out.println(\制造IBM电脑失败!\ } } } }

这样,客户端无法通过命令单生产出一个CPU来,这样抽象才真正成为一个完整产品的工厂,只要向工厂发出生产的命令,一台完整的电脑就生产出来了,而

6

设计模式

工厂怎么生产的,生产了哪些部件,外界就看不见了,外界就知道这个工厂是生产IBM电脑整机的工厂!

DELL电脑工厂一样

/**** 下面来改错, 请指出下面片段的错误*****/ public abstract class Factory{

public abstract Sample creator();

public abstract Sample2 creator(); }

public class SimpleFactory extends Factory{

public Sample creator(){ ...... }

public Sample2 creator(){ ...... } }

public class BombFactory extends Factory{

public Sample creator(){ ...... }

public Sample2 creator(){ ...... } }

思考:上面的代码错在哪??

/************ 改错结束 ***************/ 2,builder模式的理解

作者:罗鹏 Email:luopeng@ec.com.cn

7

设计模式

简单地说,就好象我要一座房子住,可是我不知道怎么盖(简单的砌墙,层次较低),也不知道怎么样设计(建几个房间,几个门好看,层次较高), 于是我需要找一帮民工,他们会砌墙,还得找个设计师,他知道怎么设计,我还要确保民工听设计师的领导,而设计师本身也不干脏活,重活,光是下命令,这里砌一堵墙,这里砌一扇门,这样民工开始建设,最后,我可以向民工要房子了。在这个过程中,设计师是什么也没有,除了他在脑子里的设计和命令,所以要房子也是跟民工要,记住了!

package builder;

public interface Builder {

public void makeWindow(); public void makeFloor(); public Room getRoom(); }

/*************************************************************/ package builder;

public class Designer {

public Designer() { }

public void order(Builder builder) //这些下等人没有知识,没有文化,哈哈,得听我的 {

builder.makeWindow(); builder.makeFloor(); }

public static void main(String[] args) { Designer designer1 = new Designer(); } }

/*************************************************************/ package builder;

public class Mingong implements Builder{ private String window=\ private String floor=\

8

设计模式

public Mingong() { }

public static void main(String[] args) { Mingong mingong1 = new Mingong(); }

public void makeWindow(){ window=new String(\ }

public void makeFloor(){ floor=new String(\ }

public Room getRoom() {

if((!window.equals(\ {

System.out.println(\ return new Room(); }

else return null; } }

/*************************************************************/ package builder; public class Room {

private String window=\ private String floor=\ public Room() { }

public static void main(String[] args) { Room room1 = new Room(); } }

/*************************************************************/

package builder;

public class Client {

public Client() { }

public static void main(String[] args) { Builder mingong=new Mingong();

Designer designer=new Designer();

9

设计模式

designer.order(mingong); mingong.getRoom(); } }

3, 适配器模式的理解

作者:罗鹏 email:luopeng@ec.com.cn public class window的软件 {

public void run(){

System.out.print(\我运行在window上\ }

public void run1(){

System.out.print(\我运行在window上的run1方法\ } }

public class linux的软件 {

public void run(){

System.out.print(\我运行在linux上\ } }

public class 适配器 extends window的软件 {

private linux的软件 软件1; //实际上是聚合的使用 public 适配器(linux的软件 软件变量) {

this.软件1= 软件变量; }

public void run() {

软件1.run(); }

public void run1() {

System.out.print(“已经被adpter改写了”); } }

客户段

10

设计模式

public class test{

public static void main(String args[]) {

linux的软件 test1=new linux的软件(); 适配器 test2=new 适配器(test1); test2.run();

test2.run1(); }

4,Memento 模式理解

作者:罗鹏 email:luopeng@ec.com.cn

Memento


我写的设计模式的文章总结(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:股权购买协议 中英文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: