设计模式

/**
 * 内部类单列模式  
 */
public class A {
   private A(){};
    private static class B{
        public static A a = new A();
    }
    private static A getInstante(){
        return B.a;
    }
}

//------------------------------------------------------工厂模式------------------------------------------------------------------------------

package com.aim.factorytest;

/**
 * 类名称:com.aim.factorytest
 * 类描述: 多方法工厂(常用)
 * 创建人: 张国胜
 * 创建时间:2016/12/19 16:32
 * 修改人:
 * 修改时间 :
 *
 * @version V1.0
 */
public class FactoryJava {
    public static void main(String[] args){
        ICpu iCpu = new CpuFactory().ICpuIcpucreatOther();
        iCpu.decs();
    }
}
class Inter implements ICpu{

    @Override
    public void decs() {
        System.out.printf("我是英特尔cup");
    }
}
class Aple implements ICpu{

    @Override
    public void decs() {
        System.out.printf("我是苹果cpu");
    }
}
class Other implements ICpu{

    @Override
    public void decs() {
        System.out.printf("我是乱七八糟杂牌cpu");
    }
}

interface ICpu{
    void decs();
}
class CpuFactory{
    public static ICpu IcpuCreatInter(){
        return new Inter();
    }
    public static ICpu IcpucreatApple(){
        return new Aple();
    }
    public static ICpu ICpuIcpucreatOther(){
        return new Other();
    }
}
//--------------------------------------------------观察者模式---------------------------------------------

/**
 * 类名称:com.aim.factorytest.com.aim.observer
 * 类描述:   观察者模式,妖艳贱货是被观察者,老王跟老李是观察者
 * 被观察者发出一条消息然后观察者做出相应的处理
 * 创建人: 张国胜
 * 创建时间:2016/12/19 17:02
 * 修改人:
 * 修改时间 :
 *
 * @version V1.0
 */
public class Obsercer{
    public static void main(String[] args){
        LaoWan laoWan = new LaoWan();
        LaoLi laoLi = new LaoLi();
        YaoyanJianHuo yaoyanJianHuo = new YaoyanJianHuo();
        //老王,老李都是妖艳贱货的爱慕者,都到她那留了联系方式
        yaoyanJianHuo.addPerson(laoWan);
        yaoyanJianHuo.addPerson(laoLi);
        yaoyanJianHuo.infoMsg();
    }
}
class LaoWan implements Person{
    private String name = "老王";
    public LaoWan(){

    }
    @Override
    public void getMessage(String msg) {
        System.out.printf(name+"接到妖艳贱货的消息:"+msg);
    }
}
class YaoyanJianHuo{
    private List<Person> list = new ArrayList<>();
    public void addPerson(Person person){
        list.add(person);
    }
    public void infoMsg(){
        for(Person person:list){
            person.getMessage("我老公今晚不在家,谁先到就会很嗨哦\n");
        }
    }
}
class LaoLi implements Person{
    private String name = "老李";

    public LaoLi() {
    }

    @Override
    public void getMessage(String msg) {
        System.out.printf(name+"接到妖艳贱货的消息:"+msg);
    }
}
interface Person{
    void getMessage(String msg);
}

//--------------------------------------------------------------适配器模式-----------------------------------------------

public class Test {
    public static void main(String[] args) {
        Phone phone = new Phone();
        VoltageAdapter adapter = new VoltageAdapter();
        phone.setAdapter(adapter);
        phone.charge();
    }
}

// 手机类
class Phone {

    public static final int V = 220;// 正常电压220v,是一个常量

    private VoltageAdapter adapter;

    // 充电
    public void charge() {
        adapter.changeVoltage();
    }

    public void setAdapter(VoltageAdapter adapter) {
        this.adapter = adapter;
    }
}

// 变压器
class VoltageAdapter {
    // 改变电压的功能
    public void changeVoltage() {
        System.out.println("正在充电...");
        System.out.println("原始电压:" + Phone.V + "V");
        System.out.println("经过变压器转换之后的电压:" + (Phone.V - 200) + "V");
    }
}
//-------------------------------------------------------------------代理模式-----------------------------------------------------------------------------

public class AdapterModel {
public static void main(String[] args) {
//有人让老李吃苹果
System.out.println("老李吃个苹果吧");
DaiLiPersonLaoWan daiLiPersonLaoWan = new DaiLiPersonLaoWan(new WeiTuoPersonLaoli());
daiLiPersonLaoWan.eat();
}

}
//代理事件
interface DailiEvent{
void eat();//吃东西

//代理人老王
class DaiLiPersonLaoWan implements DailiEvent{
private DailiEvent dailiEvent;
public DaiLiPersonLaoWan(DailiEvent dailiEvent){
this.dailiEvent = dailiEvent;
}
public void eat() {
// TODO Auto-generated method stub
dailiEvent.eat();
System.out.println("代理人老王:吃完了");
}

}
//委托人老李
class WeiTuoPersonLaoli implements DailiEvent{


public void eat() {
// TODO Auto-generated method stub
System.out.println("委托人老李:不想吃,老王你来代我吃了它");
}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值