se模式

一。基本的面向对象原则:封装,多态,针对接口。

二。策略模式:

           

abstact class duck{
       private Flyber flyber;
       private Quacker quacker;
       
       private Higter highter;  
        public void display()
       {
          System.out.println("重量:"+heiht);
        } 
        public void fly()
       {
            flyber.fly();
      }
       pulibc void quaker()
       {
            quacker.quacker();
       }
   .....get set 方法。
}
public interface Flyber{
   public  quacker();

}

    然后有一个实现此接口的飞翔的类,

   一个鸭子类继承duck类,它会飞,会叫,那么就把实现flyber,quacker接口会飞会叫的
行为类,赋于鸭子类的成员变量。

这样鸭子类 的不变的部分写在主抽象类中,变化的部分写在其成员变量中,

好处:若都是继承得来,主类实现飞和叫,若子类不会飞和叫,那每继承一个就要修改飞和叫。

         若把会叫和飞写成接口,主类实现接口,这样若子类中有一样的会飞和会叫这样更新和新加都要重复写,这样代码不能复用。

所以把变化的部分写成实现接口的行为类,组合在主类中,这样避免了上面的情况的发生。

 

三:观察者:

      interface subject

{

        regiterObercts();

        removeObercts();

        notesObercts();

 

interface Oberct

{

    public update(传输对象);

}

 

这样实现

   Oberct1 implements Oberct

{

        Oberct1( subject)

        {

                subject.regiterObercts(this);       

        }

         public update(传输对象)

        {

             要传输的对象获得,然后显示。

        }

}

 

subject implements subject

{

    private List list;

    regiterObercts(object){

      list.add(object);

      }

    removeObercts()

{

list.remove(object);

}

    notesObercts(

    for()

   {

       list.get(i).update(传输对象);

    }

 

);

java内置观察者:java.until.Observable   Observer

但是Observable   是类,不是接口,有好有坏。

 

三装饰者模式:

一个抽象的主件:可为抽象类或接口

    下面分为:两种

    一主类 二位装饰者

  注意这三个必须是同一种类型。

装饰者模式:实现3个组件
一个抽象的组件,一个抽象的装饰者的组件, 一个具体的组件,一个具体的装饰者组件
装饰者模式:所有的组件必须都是实现统一的接口.
其中实现的继承是为了使所有的组件都属于统一的类型,而不是继承主件的行为。而是通过组合来实现行为的改变。
javaIO模型就是实现了装饰者模式。
   inputStream 为抽象的组件,FileInputStream 为抽象的组件。LineNumberInputStream ,BufferedInputStream为装饰者的具体类。
   那抽象的装饰者组件是哪个类呢。

OK

     

四:工厂模式:

   1.简单工厂:

          如果在客户端得到一个实例,都要NEW一个对象的话,这样就是针对具体的实现类来编成,这样以后要是改变的话,就要修改客户端的代码.这样把对象的创建放到另外一个类中去创建.就构成了简单工厂,

 

public class PizzsStore{
       Pizza OrderPizza(String type)
          {
            pizza= simplePizzaFactory.createPizza(type);

              pizza.prepare();
              pizza.bake();
              pizza.cut();
             pizza.box();
              return pizza;
            }

}

 

  2.工厂方法:

   但是如果把基类创建成一个抽象类,创建对象在类中只是个抽象的方法,要具体的子类去实现对象的创建.这样就构成了工厂方法.

3.如果把创建对象所用的原料,在用原料工厂来完成,那么不同的店面,要不同的PIZZA对象,这样在创建一个原料工厂,又有不同的子类去实现原料工厂,这样创建对象的时候,把具体的工厂传入,来创建自己的pizza对象。

这样构成了抽象工厂,抽象工厂用到了工厂方法来创建自己的具体类。

抽象物品及具体物品:

public abstract class Pizza{
       String name;
       Dough dough;
      Sauce sauce;
      .....
     void baake(){System.out.println(" bake for 25 minutes at 350");}
     void cut(){}
     
}

public class CheesePizza extends Pizza{
      PizzaIngredientFactory ingredientFactory;

     public CheesePizza(PizzaIngredientFactory facotry)
   {
       this.factory=facotry;
   }

   void prepare()
  {
     this.dough=ingredientFactory.createDough();
     this.sauce=facotry.createSauce();
  }


}

 

具体店面:

 

public class NyPizzaStore Extends PizzaStore{
     protected Pizza createPizza(String item)
   {
    Pizza pizza=null;
    PizzaIngredientFactory =new NyPizzaIngredIentFactory();  
    if(item.equasl("cheese"))
{
    pizza=new CheesePizza(factory);
}else if( ){

}else if( ){

}
      

   }


}

 抽象的店面

public abstract class PizzaStore{
public Pizza orderPizza(String type){
     Pizza pizza;
pizza=createPizza(type);
pizza.prpare();
pizza.bake();
pizza.cut();
pizza.box();
return pizza;
}

protected abstract Pizza createPiizza(String type);
}

 四:单例模式

  当类的构造方法为私有的时候,就不能从外部或者子类来创建实例,这时候就应该从类的内部来创建实例,所以类的必须有个公共的静态方法,来提供实例.

   初始化时就创建实例:

/**
 * @author handw
 * @date 2009-12-12 下午01:46:52
 * @infomation:单例
 */
public class Singtons {
	private static Singtons sington=new Singtons();
	/**
	 * 私有构造方法
	 */
	private Singtons() 
	{
	}

	/**
	 * 
	 * @author handw
	 * @date 2009-12-12 下午01:48:12
	 * @infomation:静态的方法
	 * @return
	 */
	public static Singtons getSingtonIntance()
	{
		return sington;
	}
	

}

 

在获取实例的时候创建实例:

package maintest;

/**
 * @author handw
 * @date 2009-12-12 下午03:07:06
 * @infomation:单例
 */
public class Sington {
    private static Sington sington;
    private String QueryCarSQL="select * from mg_car";
    private String QueryStationSQL="select * from mg_car";
        /**
	 * 私有构造方法
	 */
	private Sington() 
	{
	}
	/**
	 * 返回实例
	 * @author handw
	 * @date 2009-12-12 下午03:08:11
	 * @infomation:
	 * @return
	 */
	public static Sington getSingtonIntance()
	{
		if(sington==null)
		{
		    synchronized (Sington.class) {//---比同步一个变量的作用范围大,它相当于同步静态方法
			if(sington==null)
			{
			    sington=new Sington();
			}			    		    }
		}
                     return sington;
	}
     public String getPublicQueryCar()
     {
	 return "select * from mg_car";
     }
     /**
      * 外部不可用
      * @author handw
      * @date 2009-12-12 下午03:43:21
      * @infomation:
      * @return
      */
     private String getPrivateQueryCar()
     {
	 return "select * from mg_car";
     }
     /**
      * 
      * @author handw
      * @date 2009-12-12 下午03:43:42
      * @infomation:同一个包中,子类,内部可用
      * @return
      */
     protected String getProtectedQueryCar()
     {
	 return "select * from mg_car";
     }
     /**
      * 
      * @author handw
      * @date 2009-12-12 下午03:46:08
      * @infomation:友好权限
      * @return
      */
     String getFriendly()
     {
	 return "select * from mg_car";
     }
}

 

也个同步获得实例的静态方法,但是性能不好,不如同步块,只是在第一次创建的时候同步块才运行一次。

 

 

 

 

 

 

 

 

【电力系统】单机无穷大电力系统短路故障暂态稳定Simulink仿真(带说明文档)内容概要:本文档围绕“单机无穷大电力系统短路故障暂态稳定Simulink仿真”展开,提供了完整的仿真模型与说明文档,重点研究电力系统在发生短路故障后的暂态稳定性问题。通过Simulink搭建单机无穷大系统模型,模拟不同类型的短路故障(如三相短路),分析系统在故障期间及切除后的动态响应,包括发电机转子角度、转速、电压和功率等关键参数的变化,进而评估系统的暂态稳定能力。该仿真有助于理解电力系统稳定性机理,掌握暂态过程分析方法。; 适合人群:电气工程及相关专业的本科生、研究生,以及从事电力系统分析、运行与控制工作的科研人员和工程师。; 使用场景及目标:①学习电力系统暂态稳定的基本概念与分析方法;②掌握利用Simulink进行电力系统建模与仿真的技能;③研究短路故障对系统稳定性的影响及提高稳定性的措施(如故障清除时间优化);④辅助课程设计、毕业设计或科研项目中的系统仿真验证。; 阅读建议:建议结合电力系统稳定性理论知识进行学习,先理解仿真模型各模块的功能与参数设置,再运行仿真并仔细分析输出结果,尝试改变故障类型或系统参数以观察其对稳定性的影响,从而深化对暂态稳定问题的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值