软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的复用性。
什么是工厂设计模式?
我们之前创建对象都是自己手动new出来的,那能不能让一个工厂帮我们造出来,然后我们直接拿来用就行。(使用new的方式创建对象会增加耦合度,无论使用什么框架, 都要减少new的使用以降低耦合度)
工厂模式(Factory Pattern)是Java中最常用的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种获取对象的方式。
工厂模式的作用:工厂的方法可以封装对象的创建细节( 比如 为该对象进行加工和数据注入)、可以实现类与类之间的解耦操作(核心思想)。
简单工厂(Simple Factory),它把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪个具体子类来实例化。这样让使用者只需要关注自己需要的,而不需要关注这个东西是怎么创建的,直接拿来用就行。
// 抽象父类
public abstract class Car {private String brand; // 品牌private String color; // 颜色private int price; // 价格//跑public abstract void run();public Car(String brand, String color, int price) {this.brand = brand;this.color = color;this.price = price;}public Car() {}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}
}
// 宾利车
public class BentleyCar extends Car {@Overridepublic void run() {System.out.println("一辆价格为:" + getPrice() + "万" + getColor() + "的" + getBrand() + "正在冒着烟的跑>>>");}
}
// 法拉利
public class FerrariCar extends Car {@Overridepublic void run() {System.out.println("一辆价格为:" + getPrice() + "万" + getColor() + "的" + getBrand() + "正在疯狂的跑>>>");}
}
//简单工厂类
public class CarFactory {/*** 静态方法:通过指定类型创建汽车对象** @param msg 汽车类型* @return 抽象类Car的子类对象*/public static Car createCar(String msg) {switch (msg) {case "binli":Car binli = new BentleyCar();binli.setBrand("宾利XXX");binli.setColor("黑色");binli.setPrice(400);return binli;case "falali":Car falali = new FerrariCar();falali.setBrand("法拉利拉法");falali.setColor("红色");falali.setPrice(500);return falali;default:System.out.println("对不起该工厂无法完成此车的创建。");return null;}}
}
测试类:
public class MyTest {public static void main(String[] args) {//通过工厂创建对象Car binli = CarFactory.createCar("binli"); binli.run();Car falali = CarFactory.createCar("falali");falali.run();}
}
首先xml和properties都是文本文件,里面存的内容都是用来做配置的,可以被读取出来 。其次xml比properties功能更加丰富、结构更加清晰(使用标签,类似html)、还能嵌套使用、自定义标签等等。
XML(全称:EXtensible Markup Language),可扩展标记语言。
、、、、
等等。XML 它是一种标记语言,很类似 HTML,标签都是自定义的。(但是HTML就不能用自定义的标签)
XML的作用:用于进行存储数据和传输数据、作为软件的配置文件。
XML的版本:W3C(万维网联盟)在1998年2月发布1.0版本,2004年2月又发布1.1版本,但是1.1版本不能向下兼容1.0版本,所以1.1版本就没有人用。同时,在2004年2月W3C又发布了1.0版本的第三版。所以到现在用的还是1.0版本。
.xml
。
、
)
组成部分:文档声明、指令、标签、属性、文本。
1、文档声明:(写在xml文档的第一行)
2、指令(了解):结合css的。
3.标签:标签名称自定义的。
XML 元素必须遵循以下命名规则:
名称可以含字母、数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字符 “xml”(或者 XML、Xml)开始
名称不能包含空格