1.工厂模式 工厂模式根据传递的参数来决定生产的产品,增加产品需要改动工厂的的代码,在明确不同条件生产不同实例的情况下可以使用这个模式(一般这个模式可以应付大多数场景了) 代码 手机接口: public interface Phone { void phoneInfo(); } 华为手机 public class Huawei implements Phone { @Override public void phoneInfo() { System.out.println("我是华为手机"); } } 小米手机 public class Xiaomi implements Phone { @Override public void phoneInfo() { System.out.println("我是小米手机"); } } 生产工厂,在工厂中,根据不同的类型,生成不同的手机 public class PhoneFactory { public Phone createPhone(String type){ Phone product =null; switch (type){.... 有更新! 工厂模式 程序人生
1.maven引入依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.0.2</version> </dependency> 2.请求示例 package utils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.im.... 有更新! HttpClient的post请求设置请求体 程序人生
1.引入依赖 <!-- https://mvnrepository.com/artifact/dom4j/dom4j --> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> 2.基本操作 2.1创建一个文档对象 Document document = DocumentHelper.createDocument(); 2.2创建一个节点 Element root = document.addElement("decision-table"); 2.3给节点添加属性值 root.addAttribute("num","100"); 2.4添加值到xml标签中 root.setText("标签内容"); 2.5将document对象转换成字符串 root.asXML(); 2.6将文档内容写入到xml文件 x.... 有更新! dom4j操作xml文件 程序人生
1.代理模式 代理模式给原对象提供了一个代理对象,代理对象可以访问原对象的引用,扩展功能,符合设计模式的开闭原则(可以扩展,禁止修改内部功能)。 代理模式有静态代理、动态代理和cglib代理,静态代理一个代理只对应了一个原对象,动态代理利用反射机制,一个代理可以对应多个原对象,cglib代理也可对应多个原对象,动态代理在运行时动态创建一个类实现原对象的接口作为代理类来使用,cglib代理在运行时动态创建一个类继承原对象来带使用。 2.静态代理 接口 public interface User { void sayHello(); } 接口实现 public class TeacherImpl implements User { public void sayHello() { System.out.println("I'm teacher"); } } 代理类(代理类中,我们用代理类的方法sayHello来访问原对象User的sayHello()方法,并且扩展了该方法,这其实就是代理的主要作用--在不修改源代码的情况下,扩展服务功能) public class UserProxy .... 有更新! 代理模式的Java实现 程序人生