return new Bmw();
}
}
// 应该和具体äñ”å“åÅžæˆå¯¹åº”å…³¾p?/span> ...
// æœ‰è¯·æš´å‘æˆ·å…ˆç”?/span>
public class Magnate
{
public static void main(String[] args)
{
try{
Driver driver = new BenzDriver();
Car car = driver.driverCar();
car.drive();
}
……
}
½CÞZ¾‹äºŒï¼š
public interface Creator
{
public Prouct factory();
}
public SubCreator1 implent Creator
{
public Prouct factory()
{
return new ConcreteProduct1();
}
}
public SubCreator2 implent Creator
{
public Prouct factory()
{
return new ConcreteProduct2();
}
}
è¯äh³¨æ„:˜q”回¾cÕdž‹æ˜¯Product型的åQï¼
˜q™æ ·å®¢æˆ·ç«¯è°ƒç”¨æ˜¯ç›´æŽ¥new 一个具体工厂的实例åQŒç„¶åŽå‘½ä»¤å®ƒåŽÈ”Ÿäº§ï¼Œè€Œå¯¹äºŽå…·ä½“工厂的父类åQˆæ—¢å·¥åŽ‚æŽ¥å£åQŒæŽ¥å£å®Œå…¨å¯ä»¥æ”¹æˆå¾cÈ‘ô承父¾cÀL¥å®žçްåQŒåªæ˜¯è¿™æ ·ä¸å¥½ï¼Œä¸ç¬¦åˆOO的原则)åQŒå®ƒå®Œå…¨ä¸çŸ¥é“什么äñ”å“被生äñ”了,甚至它连那个具体工厂被实例化它都ä¸çŸ¥é“ï¼
3. 抽象工厂
public abstract class AbstractFactory{
public abstract Car getCar(String carClass);
public abstract Plane getPlane(String planeClass);
}
public class Factory1 extends AbstractFactory{
public Car getCar(String carClass){
// å‚考上é¢çš„æ–¹å¼1ï½?
return car1;
}
public Plane getPlane(String planeClass){
// å‚考上é¢çš„æ–¹å¼1ï½?
return plane1;
}
}
public class Factory2 extends AbstractFactory{
public Car getCar(String carClass){
// å‚考上é¢çš„æ–¹å¼1ï½?
return car2;
}
public Plane getPlane(String planeClass){
// å‚考上é¢çš„æ–¹å¼1ï½?
return plane2;
}
}
  window.unonload=PageSetup_Reset();
ç”׃ºŽæ³¨å†Œè¡¨ä½¾|®è·Ÿæ“作¾pÈ»Ÿæœ‰å…³åQŒä¸æŽ¨è使用ã€?/p>
解决æ–ÒŽ¡ˆäºŒï¼š
使用控äšgåQ?br />åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQ?a >http://www.7say.com/article.asp?id=112åQï¼åQï¼åQï¼åQï¼åQï¼
利用ScriptX.cab控äšg˜q›è¡ŒWEB打å°åQŒå¯ä»¥æŽ§åˆ?¾U‰|‰“"ã€?横打â€å’Œâ€œé¡µé¢çš„è¾¹è·ã€‚打åîC»£ç 如下:
<object id=factory viewastext style="display:none"
classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
 codebase="</object>
<script defer>
function window.onload() {
 // -- advanced features
 factory.printing.SetMarginMeasure(2); // measure margins in inches
 factory.printing.printer = "HP DeskJet 870C";
 factory.printing.paperSize = "A4";
 factory.printing.paperSource = "Manual feed";
 factory.printing.collate = true;
 factory.printing.copies = 2;
 factory.printing.SetPageRange(false, 1, 3); // need pages from 1 to 3
 // -- basic features
 factory.printing.header = "This is MeadCo";
 factory.printing.footer = "Advanced Printing by ScriptX";
 factory.printing.portrait = false;
 factory.printing.leftMargin = 1.0;
 factory.printing.topMargin = 1.0;
 factory.printing.rightMargin = 1.0;
 factory.printing.bottomMargin = 1.0;
}
function Print(frame) {
 factory.printing.Print(true, frame) // print with prompt
</script>
<script language="javascript">
function printTure() //打å°å‡½æ•°
{
 document.all("dayinDiv").style.display="none";//éšè—按钮
 factory.printing.Print(false); //调用控äšg打å°
 document.all("dayinDiv").style.display="";//昄¡¤º
}
</script>
<DIV align="center" id="dayinDiv" name="dayinDiv">
<input type=button value="æ‰“å°æœ¬é¡µ" onclick="printTure()">
<input type=button value="™åµé¢è®„¡½®" onclick="factory.printing.PageSetup()">
<input type=button value="打å°é¢„览" onclick="factory.printing.Preview()"><br>
</DIV>
关于ScriptX的下载和该控件的使用æ–ÒŽ³•è¯ïL™»é™?http://www.meadroid.com/scriptx/index.asp 查看.
åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQ?br />具体应用åQ?br />  <object id=factory style="display:none"
   classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
   codebase="<c:url value="/editor/ScriptX.cab#version=5,60,0,375"/>" viewastext>
  </object>
  <OBJECT id=WB classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0></OBJECT>Â
  function printit()
  {
   factory.printing.header  =  ""; Â
        factory.printing.footer  =  ""; Â
   factory.printing.portrait = false;
     WB.ExecWB(6,6)
  }
 Â
  function setPrint()
  {
   factory.printing.header  =  ""; Â
        factory.printing.footer  =  ""; Â
   factory.printing.portrait = false;
   WB.ExecWB(8,1);
  }
  function previewPrint()
  {
   factory.printing.header  =  ""; Â
        factory.printing.footer  =  ""; Â
   factory.printing.portrait = false;
   WB.ExecWB(7,1)
  }
  function reset() {
   factory.printing.header  =  "&w&b™åëŠ ,&p/&P"; Â
        factory.printing.footer  =  "&u&b&d"; Â
   factory.printing.portrait = true;
  }
  window.unonload=reset();
<DIV align="center" id="dayinDiv" name="dayinDiv">
<input type=button value="æ‰“å°æœ¬é¡µ" onclick="printit()">
<input type=button value="™åµé¢è®„¡½®" onclick="setPrint()">
<input type=button value="打å°é¢„览" onclick="previewPrint()"><br>
</DIV>