当前位置: 首页 > wzjs >正文

创意网站建设排行榜目前还有阳性患者吗最新消息

创意网站建设排行榜,目前还有阳性患者吗最新消息,网站建设初级教程,安徽安庆天气预报15天一.工厂模式 实现了创建者和调用者的分离。 二.分类 简单工厂模式 用来生产同一等级结构中的任意产品。(对于新增产品,需要修改已有代码。用的最多) 要点: 简单工厂模式也叫静态工厂模式,就是工厂类一般是使用静态方法,通过接收…

一.工厂模式

  • 实现了创建者和调用者的分离。

二.分类

  • 简单工厂模式

    • 用来生产同一等级结构中的任意产品。(对于新增产品,需要修改已有代码。用的最多)
    • 要点: 简单工厂模式也叫静态工厂模式,就是工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。
  • 工厂方法模式

  • 抽象工厂模式

    • 用来生产不同产品族的全部产品。(对于增加新的产品,无能为力;支持增加产品族)

三.要点:

  • 理论上工厂方法模式更优,但实际上,我们一般都使用简单工厂模式。 \color{red}{理论上工厂方法模式更优,但实际上,我们一般都使用简单工厂模式。} 理论上工厂方法模式更优,但实际上,我们一般都使用简单工厂模式。

四.核心本质

  • 实例化对象,用工厂方法代替new操作;
  • 将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。

五.具体实现

  • 1.简单工厂模式

    • 代码实现

      • 类和接口

/*** 车运行的接口*/
public interface Car {void run();
}
/*** 奥迪车运行实现类 */
public class Audi implements Car {@Overridepublic void run() {System.out.println("奥迪在跑。。。");}
}
/*** 比亚迪车运行实现类 */
public class Byd implements Car {@Overridepublic void run() {System.out.println("比亚迪在跑。。。");}
}
      • 简单工厂类1(也称静态工厂)

/*** 简单工厂类1(也称静态工厂)* @author Administrator**/
public class CarFactory {public static Car createCar(String type){if("奥迪".equals(type)){return new Audi();}else if("比亚迪".equals(type)){return new Byd();}else{return null;}}
}
/***  简单工厂类调用* @author admin*/
public static void main(String[] args) {Car c1= CarFactory.createCar("奥迪");Car c2= CarFactory.createCar("比亚迪");c1.run();c2.run();
}
      • 简单工厂类2(也称静态工厂)

/*** 简单工厂类2(也称静态工厂)* @author Administrator**/
public class CarFactory {public static Car createAudi(){return new Audi();	}public static Car createByd(){return new Byd();	}
}
/***  简单工厂类实现* @author admin*/
public static void main(String[] args) {Car c1= CarFactory.createAudi();Car c2= CarFactory.createByd();c1.run();c2.run();
}






  • 2.工厂方法模式

    • 代码实现

      • 类和接口

/*** 车运行的接口*/
public interface Car {void run();
}
/*** 奥迪车运行实现类 */
public class Audi implements Car {@Overridepublic void run() {System.out.println("奥迪在跑。。。");}
}
/*** 比亚迪车运行实现类 */
public class Byd implements Car {@Overridepublic void run() {System.out.println("比亚迪在跑。。。");}
}
      • 工厂方法模式接口

/*** 工厂方法模式接口*/
public interface CarFactory {Car CreateCar();
}
/*** 工厂方法模式接口实现类*/
public class BydFactory implements CarFactory {@Overridepublic Car CreateCar() {return new Byd();}
}
/*** 工厂方法模式接口方法的重写*/
public class AudiFactory implements CarFactory {@Overridepublic Car CreateCar() {return new Audi();}
}
      • 工厂方法模式调用

/*** 方法工厂模式实现类*/
public static void main(String[] args) {//new AudiFactory().CreateCar().run();Car c=new AudiFactory().CreateCar();c.run();		
}






  • 3.抽象工厂模式

    • 代码实现

      • 类和接口

/*** 座椅接口*/
public interface Seat {void massage();
}
/*** 高端座椅*/
class LuxurySeat implements Seat{@Overridepublic void massage() {System.out.println("高端座椅可以按摩。。。。。");}
}
/*** 低端座椅*/
class LowySeat implements Seat{@Overridepublic void massage() {System.out.println("低端座椅不能按摩。。。。。");}
}
/*** 轮胎接口*/
public interface Tyre {void revolve();
}
/*** 高端轮胎*/
class LuxuryTyre implements Tyre{@Overridepublic void revolve() {System.out.println("不会磨损。。。。");}
}
/*** 低端轮胎*/
class LowTyre implements Tyre{@Overridepublic void revolve() {System.out.println("磨损快。。。。。");}
}
/*** 引擎接口*/
public interface Engine {void run();void start();
}
/*** 高端引擎*/
class LuxuryEngine implements Engine{@Overridepublic void run() {System.out.println("速度快。。。。。。");}@Overridepublic void start() {System.out.println("启动快,。。。。。。");}
}
/*** 低端引擎*/
class LowyEngine implements Engine{@Overridepublic void run() {System.out.println("速度慢。。。。。。");}@Overridepublic void start() {System.out.println("启动慢,。。。。。。");}
}
      • 抽象工厂接口和实现类

/*** 汽车工厂*/
public interface CarFactory {Engine createEngine();  //创建引擎Seat createSeat();		//座椅Tyre createTyre();		//轮胎
}
/*** 低端汽车*/
public class LowCarFactory implements CarFactory {@Overridepublic Engine createEngine() {return new LowyEngine();}@Overridepublic Seat createSeat() {return new LowySeat();}@Overridepublic Tyre createTyre() {return new LowTyre();}
}
/*** 高端汽车*/
public class LuxuryCarFactory implements CarFactory{@Overridepublic Engine createEngine() {return new LuxuryEngine();}@Overridepublic Seat createSeat() {return new  LuxurySeat();}@Overridepublic Tyre createTyre() {return new LuxuryTyre() ;}
}
      • 抽象工厂调用

/*** 抽象工厂模式测试类*/
public static void main(String[] args) {CarFactory c =new LowCarFactory();		Engine e=c.createEngine();e.run();e.start();CarFactory c1 =new LuxuryCarFactory();Engine e1=c.createEngine();e1.run();e1.start();
}



更多设计模式学习:

          设计模式(1):介绍
          设计模式(2):单例模式
          设计模式(4):建造者模式
          设计模式(5):原型模式
          设计模式(6):桥接模式
          设计模式(7):装饰器模式
          设计模式持续更新中…

http://www.dtcms.com/wzjs/831503.html

相关文章:

  • 唐山的做网站的企业广告策划方案万能模板
  • 响应式网站模板是什么原因缪斯形象设计高级定制
  • 苏州建设局网站实名制佛山中小企业网站制作
  • 南昌餐厅网站建设如何生成网址链接
  • 音乐资源网站开发好看响应式网站模板下载
  • 能先做网站再绑定域名吗wordpress4.9火车头发布模板
  • 上虞区驿亭镇新农村建设网站海外销售是做什么的
  • 网站建设公司应该怎么做推广投资公司经营范围
  • 信阳做网站推广信阳网站建设做视频网站版权怎么解决
  • 凡科网电脑版怎么做网站建站时长是什么原因造成的
  • 网站开发公司交易流程徐州关键词优化如何
  • 百度网站的主要盈利来源不包括云南建筑培训网
  • 手机网站模版重庆短视频seo优化推荐
  • 大连专业模板网站制作wordpress运维
  • 网站托管运营所需资料wordpress主题注册验证码
  • 个人网站吗wordpress多说插件
  • 哪里做网站wordpress淘客程序
  • 郑州优化网站推广无锡做网络推广
  • 电子商务网站进度的基本流程网络项目设计方案
  • 怎么上传网站地图室内设计平面图上色
  • 东莞网站建设必要性可以做水印的网站
  • 成都网站建设技术支持都江堰建设局网站
  • 湖南网站seo营销如何做宣传推广效果最好
  • 网站建设seo优化推广做网站有了域名
  • 苏州设计网站宿主选择 网站建设
  • 如何用dedecms做网站超级优化大师下载
  • 中国各大网站开发语言建筑工程招投标网
  • 网站网站制作服务网站建设费用是什么科目
  • 如何判断一个网站的关键词是否难做邢台在百度上做个网站
  • 网站模板上传教程织梦网站空间如何清理