写一个单态设计模式、一个工厂设计模式、代理设计模式

单态:

package TKaoShi;

public class DanTaiPerson {
  private static DanTaiPerson dtp;
  private String name;
  private char sex;

  private DanTaiPerson(){

  }

  private DanTaiPerson(String name,char sex){
    this.name=name;
    this.sex=sex;
  }

  public static DanTaiPerson diaoYong(){
    dtp=new DanTaiPerson("luchangyin", ‘男‘);
    return dtp;
  }

  public void printDanTaiPerson(){
    System.out.println("姓名:"+name+"\n性别:"+sex);
  }
}

package TKaoShi;

public class DanTaiMain {

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    DanTaiPerson dp =DanTaiPerson.diaoYong();
    dp.printDanTaiPerson();
  }

}

工厂设计:

package TKaoShi;

public abstract class Computer {

  public abstract String nameComputer();

}

package TKaoShi;

public class DestTopComputer extends Computer {

  @Override
  public String nameComputer() {
    // TODO Auto-generated method stub
    return "这是一个台式电脑";
  }

}

package TKaoShi;

public class TopComputer extends Computer{

  public TopComputer(){

  }

  @Override
  public String nameComputer() {
    // TODO Auto-generated method stub
    return "这是一个笔记本";
  }

}

package TKaoShi;

public class Factory {
  public static Computer getComputer(String name){
    if(name==null||"".equals(name))
      return null;
    else if(name.equals("TomComputer"))
      return new TopComputer();
    else if(name.equals("DestTopComputer"))
      return new DestTopComputer();
    return null;
  }

  public static Computer getTopComputer(){
    return new TopComputer();
  }

  public static Computer getDeTopConputer(){
    return new DestTopComputer();
  }

}

package TKaoShi;

public class TestComputerMain {

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Factory fa=new Factory();

    TopComputer tc=(TopComputer) fa.getTopComputer();
    System.out.println(tc.nameComputer());
    DestTopComputer dc=(DestTopComputer)fa.getDeTopConputer();
    System.out.println(dc.nameComputer());
    System.out.println("-----------------");

    TopComputer c=(TopComputer) fa.getComputer("TomComputer");
    System.out.println(c.nameComputer());

    DestTopComputer d=(DestTopComputer)fa.getComputer("DestTopComputer");
    System.out.println(d.nameComputer());

  }

}

代理设计:
package TKaoShi;

public interface Internet {
  public abstract void lianWang();
  public abstract void shangWang();
  public abstract void duanWang();
}

package TKaoShi;

public class WangGuan implements Internet {

  @Override
  public void lianWang() {
    // TODO Auto-generated method stub
    System.out.println("已经联网了!");
  }

  @Override
  public void shangWang() {
    // TODO Auto-generated method stub
    System.out.println("现在可以上网了!");
  }

  @Override
  public void duanWang() {
    // TODO Auto-generated method stub
    System.out.println("大家注意了,准备要断网咯!");
  }

}

package TKaoShi;

public class WangMin implements Internet{
  private WangGuan wg;
  public void setWang(WangGuan wg){
    this.wg=wg;
  }

  @Override
  public void lianWang() {
    // TODO Auto-generated method stub
    wg.lianWang();
  }

  @Override
  public void shangWang() {
    // TODO Auto-generated method stub
    wg.shangWang();
  }

  @Override
  public void duanWang() {
    // TODO Auto-generated method stub
    wg.duanWang();
  }

}

package TKaoShi;

public class TestInternetMain {

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    WangGuan wg=new WangGuan();
    WangMin wm=new WangMin();
    wm.setWang(wg);
    wm.lianWang();
    wm.shangWang();
    wm.duanWang();
  }

}

时间: 2024-10-12 09:14:17

写一个单态设计模式、一个工厂设计模式、代理设计模式的相关文章

2016.01.13 代理设计模式

这几天都在用代码的形式在完成滑动解锁的功能,今天讲到了代理设计模式. ?代理设计模式 首先,设计模式是什么:一种完成特定功能的方式. 类别Category:给已有的类添加方法. 代理Delegate:1.配置 2.两个对象之间传递数据A(B) B-->A(A完成B的方法,但是B要将结果回调给A) 所有的设计模式都有一个固定的规范,所以代理设计模式也不例外: UnlockModel(功能类): 1.写一套代理(协议) 代理的方法就是回调的方式 @property TextSettingDelega

每天一个设计模式-5 工厂方法模式

每天一个设计模式-5 工厂方法模式 1.模式定义 定义一个用于创建对象的接口,让子类决定实例化那一个类,Factory Method使一个类的实例化延迟到其子类. 2.工厂方法模式解决问题的思路 工厂方法模式需要接口对象,那就定义一个方法来创建这个接口对象(工厂方法):可是事实上它自己是不知道如何创建这个接口对象的,没有关系,定义成抽象方法让子类来实现就可以了:这样这个对象本身就可以只是面向接口编程,而无需关心到底如何创建接口对象了. 3.实际问题 实现一个导出数据的功能,客户选择数据的导出格式

一口一个设计模式--简单工厂VS工厂VS抽象工厂

前几天一直在准备大学毕业,始终脱不开身,今天终于有时间进行设计模式的研究.咱们今天研究的话题是工厂家族三种设计模式的对比--简单工厂VS工厂VS抽象工厂. 经过细心推敲,我们不难得出:工厂模式是简单工厂的升级版,抽象工厂是工厂模式的升级版,简单工厂+抽象工厂是抽象工厂的升级版.知道了它们之间的宏观关系,下面我带它们从一次次蜕变了解它们为什么是这样的关系. 我们最原始的代码思维是把所有的实现都放在一个类中,功能虽然是实现了,但耦合性非常高,很不方便维护,好比活字印刷术之前的印刷,一个地方需要修改,

一个很很好玩的学习Java设计模式的PDF

目录如下:用非常通俗的语言来描述设计模式. 目 录第 1 章 策略模式[STRATEGY PATTERN] .......................................................................................................... 4第 2 章 代理模式[PROXY PATTERN] ..............................................................

每天一个设计模式(0):设计模式概述

本系列是基于阅读<Head First 设计模式>而产生的,也算是此书的阅读笔记. 由于目前事情比较多,本系列内容参考了几个大神的博客内容.以后时间充裕了,或对某种模式有了更深入的理解后,会及时更新对应文章. 参考的几个大神的博客主页如下:http://www.cnblogs.com/mengdd/ http://blog.csdn.net/zhangerqing?viewmode=contents 设计模式 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目

Spring 实现两种设计模式:工厂模式和单态模式

在Spring 中大量使用的以下两种设计模式:工厂模式和单态模式. 工厂模式可将Java 对象的调用者从被调用者的实现逻辑中分离出来,调用者只需关心被调用者必须满足的规则(接口) ,而不必关心实例的具体实现过程.这是面向接口编程的优势,能提高程序的解耦,避免所有的类以硬编码方式耦合在一起. 如果所有的类直接耦合,极易形成"骨牌效应",假如B 类调用了A 类,一旦A 类需要修改,则B 类也需要修改:假如C 类调用了B 类,则C 类也需要修改......依次类推,从而导致整个系统都需要改写

Java设计模式之工厂模式(Factory模式)介绍(转载)

原文见:http://www.jb51.net/article/62068.htm 这篇文章主要介绍了Java设计模式之工厂模式(Factory模式)介绍,本文讲解了为何使用工厂模式.工厂方法.抽象工厂.Java工厂模式举例等内容,需要的朋友可以参考下 工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经

代理设计模式

1. 什么是设计模式 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.毫无疑问,设计模式于己于他人于系统都是多赢的:设计模式使代码编制真正工程化:设计模式是软件工程的基石脉络,如同大厦的结构一样. 什么是代理设计模式 生活中大家一定遇到这样的情况了:比如说我要买一包纸,不妨就是心相印的吧,那一般人的话我应该不是去心相印的工厂里面直接去买吧,而是我们在心相印专卖店或者什

设计模式之工厂方法模式

anticipate 预料 = except ant蚂蚁 ic ic卡 ip ip卡 ate吃 我没有预料到小蚂蚁把我的ic,ip卡吃掉了. robust 强壮的 = strong ro rong容祖儿  bu不  st石头 容祖儿不喜欢强壮的石头. maintain 维持 = keep main主要的(大陆)  tain 台湾 大陆和台湾维持着若即若离的关系. 设计模式之工厂方法模式 动机:     一个工厂方法factory method定义了一个接口来创建对象,但是让子类去选择创建哪一个,

详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂)

园子里关于23种设计模式的博文已经可以说是成千上万.车载斗量.屯街塞巷.不计其数.数不胜数.摩肩接踵.汗牛充栋.车水马龙.门庭若市.琳琅满目直至让人眼花缭乱了.在这样的大环境下之所以来写设计模式类的博文,并不是像一些"非主流"的爱情观那样"宁缺毋滥". 只是其一呢,因为相当于给自己做一个总结,加深一下自己这方面的认识,因为掌握了和把它写出来我感觉后者还可以对技能有一个提升,其二呢是因为最近公司有一个内部的training需要讲设计模式. v写在前面 在这里呢,需要向