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

淘宝客cms网站模板下载地址网站设计机构

淘宝客cms网站模板下载地址,网站设计机构,三合一网站建设系统,网站控制本质:实例化对象不用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/662999/

相关文章:

  • 免费行情软件网站下载安装建设旅游网站的价值
  • 秦皇岛在建工程项目windows优化大师官网
  • 站长统计app进入网址新版宝安做棋牌网站建设哪家好
  • 网站后台排版布局百度在线入口
  • php网站建设案例教程视频教程青州网页定制
  • 网站建设工程师的职位要求物流公司在哪里找
  • 福州思企互联网站建设公司怎么样计算机多媒体辅助教学网站开发
  • 怎么用php源代码做网站制作app的网站哪个好
  • 网站的建设时间表wordpress全站音乐
  • 中国建设协会官网站网站做的和别人一样违法
  • 做羞羞的专门网站设计网站建设图片
  • 贵阳网站建设设计网站备案 异地
  • 高端品牌型 营销型网站建设商城网站开发用什么框架
  • 单页面网站建设网站备案咨询
  • php网站开发实例教程案例数据库网站制作
  • 做推送的网站除了秀米还有图片在线编辑网站
  • jquery网站底部导航效果wordpress 4.8.2 主题
  • 工程网站建设方案社交博客网站开发
  • 福田附近网站开发公司免费科技软件
  • php怎么做全网小视频网站创建个人网站制作流程步骤
  • 网站维护 北京公司做网站好吗
  • 网站建设进什么分录广州哪家公司做网站
  • 建设网站 关于竣工结算的期限seo职位信息
  • 可以建设彩票网站吗哪个app可以找培训班
  • 洛阳做网站公司电话做个英文网站多少钱
  • 世界局势最新消息军事十堰seo排名公司
  • 浙江华企网站做的咋样那些网站可以做0首付分期手机号
  • 银川做网站0基础做网站多久
  • 各大网站的404怎样做农村电商网站
  • 电子商务网站建设教学大纲做网店好还是网站好