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

舒兰市城乡建设局网站wordpress编辑器图片

舒兰市城乡建设局网站,wordpress编辑器图片,wordpress页脚代码,成都网站建设十强企业本质:实例化对象不用new,用工厂代替,实现了创建者和调用者分离 满足: 开闭原则:对拓展开放,对修改关闭 依赖倒置原则:要针对接口编程 迪米特原则:最少了解原则,只与自己直…

本质:实例化对象不用new,用工厂代替,实现了创建者和调用者分离

满足:

开闭原则:对拓展开放,对修改关闭

依赖倒置原则:要针对接口编程

迪米特原则:最少了解原则,只与自己直接相关的类有关系

简单工厂模式

也被称为静态工厂

public interface Car {void name();
}
public class BWM implements Car{
​@Overridepublic void name() {System.out.println("宝马");}
}
public class DaZhong implements Car{
​@Overridepublic void name() {System.out.println("大众");}
}

public class CarFactory{public static Car getCar(String name){if(name.equals("大众")){return new DaZhong();}else if (name.equals("宝马")){return new BWM();}else{return null;}}
}
public class consumer {public static void main(String[] args) {
​Car car = CarFactory.getCar("大众");car.name();Car car2 = CarFactory.getCar("宝马");car2.name();}
}

总结

将创建对象的任务交给工厂去完成

缺点

不满足开闭原则,如果我们新创建一个车,就需要修改CarFactory的源代码

工厂方法模式

多个工厂对应多个实现类

public interface CarFactory {
​Car getCar();
}
​public class BMWFactory implements CarFactory{@Overridepublic Car getCar() {return new BWM();}
}
​
public class DaZhongFactory implements CarFactory{@Overridepublic Car getCar() {return new DaZhong();}
}

如果我们想要创建新的车对象,只要创建对应的车工厂即可,无需修改CarFactory的代码

public class Aodi implements Car {@Overridepublic void name() {System.out.println("奥迪");}
}public class AodiFactory implements CarFactory{@Overridepublic Car getCar() {return new Aodi();}
}public class consumer {public static void main(String[] args) {Car car = new DaZhongFactory().getCar();car.name();Car car1 = new BMWFactory().getCar();car1.name();Car car2 = new AodiFactory().getCar();car2.name();}
}

抽象工厂模式

围绕一个超级工厂生产工厂,该工厂又称为其他工厂的工厂 (抽象的抽象)

public interface IProductFactory {IPhoneProduct iphoneproduct();IRouterProduct irouterproduct();
}

具体的产品工厂

public class XiaomiFactory implements IProductFactory{@Overridepublic IPhoneProduct iphoneproduct() {return new XiaomiPhone();}@Overridepublic IRouterProduct irouterproduct() {return new XiaomiRouter();}
}
public class HuaweiFactory implements IProductFactory{@Overridepublic IPhoneProduct iphoneproduct() {return new HuaweiPhone();}@Overridepublic IRouterProduct irouterproduct() {return new HuaweiRouter();}
}

产品功能

public interface IPhoneProduct {void open();void close();
}
public interface IRouterProduct {void open();void close();}

具体实现

public class XiaomiPhone implements IPhoneProduct{@Overridepublic void open() {System.out.println("小米手机开机");}@Overridepublic void close() {System.out.println("小米手机关机");}
}
public class HuaweiPhone implements IPhoneProduct{@Overridepublic void open() {System.out.println("华为手机开机");}@Overridepublic void close() {System.out.println("华为手机关机");}
}
public class XiaomiRouter implements IRouterProduct{@Overridepublic void open() {System.out.println("小米路由器开机");}@Overridepublic void close() {System.out.println("小米路由器关机");}
}
public class HuaweiRouter implements IRouterProduct{@Overridepublic void open() {System.out.println("华为路由器开机");}@Overridepublic void close() {System.out.println("华为路由器关机");}
}

测试

public class consumer {public static void main(String[] args) {//先创建工厂System.out.println("==========小米==========");IPhoneProduct product = new XiaomiFactory().iphoneproduct();product.open();product.close();IRouterProduct irouterproduct = new XiaomiFactory().irouterproduct();irouterproduct.open();irouterproduct.close();System.out.println("===========华为==========");IPhoneProduct iphoneproduct = new HuaweiFactory().iphoneproduct();iphoneproduct.open();iphoneproduct.close();IRouterProduct irouterproduct1 = new HuaweiFactory().irouterproduct();irouterproduct1.open();irouterproduct1.close();}
}

 

http://www.yayakq.cn/news/765745/

相关文章:

  • 百度广告 网站域名 已验证网站做防伪查询代码
  • 企业网站的域名是该企业的百度工具seo
  • 湖南养老院中企动力网站建设知企业网站怎么打不开
  • 个人承接网站开发项目郴州出现一例无症状感染者
  • 外贸企业网站制作开封 网站建设
  • 浙江seo技术培训关键词优化是什么
  • 怎么查看网站是否降权google在线代理
  • 建网站深wordpress 前台 上传
  • 企业网站自助建wordpress添加搜索栏
  • 东莞建设工程质量网站公司网页建立
  • 做个网站得花多少钱电脑端网页设计尺寸
  • 专门做海报的网站企业网站模板中文
  • 可以做水果的团购网站可以推广的软件
  • 如果在网上接网站建设项目深圳网站建设clh
  • 宜昌公司做网站网站引量方法
  • 购物车功能网站怎么做的公司网页模板下载
  • 网站开发技术总结报告wordpress 此网页包含重定向循环
  • asp.net 网站提速太原seo排名优化公司
  • 有什么免费ppt模板网站做网站收多少钱
  • php体育网站模板网络方案设计案例
  • 国内做家具外贸的网站ev123建站
  • 单位建设网站的意义莒县做网站的电话
  • 旅游网站建设的利益建设政务网站
  • 做网站的公司多吗网址安全检测
  • 公司网站开发最新装修设计效果图大全
  • 山东省建设监理协会网站6中关村在线对比
  • 宁波网站建设建站厂家合肥市网站建设
  • 站长工具综合查询ip网站icp查询
  • 那个大学业做网站66039域名查询网
  • 有哪些网站做外贸的丽水市莲都区建设局网站