介绍设计模式
设计模式是什么?
- 设计模式是前辈总结的设计经验
- 设计模式的目标是代码更容易理解,更容易维护
- 通过设计模式可以使代码更可靠
设计模式的分类
按照设计模式的行为分类,可以将设计模式分为三类:
- 创建型模式——核心宗旨是如何更加精巧的创建对象
- 结构性模式——在软件结构上重构,抽象使得结构更加合理
- 行为性模式——根据现实对行为约束优化
介绍工厂模式的用途和特点
工厂模式
工厂模式是创建型模式最基础,最重要的一种设计模式
- 工厂模式用于隐藏创建对象的细节
- 工厂模式的核心是:工厂类(Factory)
- 工厂模式可以细分为:简单工厂,工厂方法与抽象工厂
简单工厂
最开始的时候,客户端需要一个一个去尝试,哪一个实际的类满足我的需求,我才去调用它获取实际对象,现在引入工厂类之后,我们只需要把它交给工厂类,客户端只需要执行抽象接口的方法,具体使用哪一个实现类由工厂类决定,简化了客户类操作。
项目应用-i18n国际化
示例代码:
抽象类 I18N:
public interface I18N {
public String getTitle();
}
实现类1:chinese
public class Chinese implements I18N{
@Override
public String getTitle(){
return "人事管理系统";
}
}
实现类2:Italian
public class Italian implements I18N{
@Override
public String getTitle(){
return "Sistemi di gestione del personale";
}
}
工厂类:
public class I18NFactory {
public static I18N getI18NObject(String area){
if (area.equals("china")){
return new Chinese();
}else if(area.equals("spain")){
return new Spainish();
}else if (area.equals("italy")){
return new Italian();
}else {
return null;
}
}
}
最终调用:
public class Software {
public static void main(String[] args) {
I18N i18n = I18NFactory.getI18NObject("italy");
System.out.println(i18n.getTitle());
}
}
这里有几种使用重点需要关注一下:
1.实现类实现相同接口
2.使用时无论是工厂方法还是使用都是面向接口开发
3.由工厂决定最后的执行类
4.由static描述的工厂成为静态工厂,不需要实例化工厂对象,直接类调用就可以。
掌握工厂模式的项目应用
项目应用—多端应用切换
具体代码见:https://gitee.com/PeopleRepublicOfChina/maven_web_factory
效果如下:
当使用电脑访问时,页面展示为:
当切换为手机端访问时,页面展示为: