当前位置:主页 > IT技术新闻 >

Android开发之工厂模式初探,android工厂初探

作者:环亚发表时间:2019-01-31

Android开发之工厂模式初探,android工厂初探

      工厂模式(Factory)是比较常见的一种模式我觉得也是一种非常容易理解的一种模式,举个简单的例子吧,我们小时候经常考试,每次最害怕的就是爸妈问考试试卷的分数,不同的分数我们的心情也是不一样的。那么我们就根据这个情况以工厂模式写一个Java程序。

public class Factory {
     public  static Student_test  creator(String rank){
    	 if(rank.equals("优秀")){
    		 return  new Student_Laugh();
    	 }else{
    		 return  new Student_Cry();
    	 }
     }
}
      在这里我们建立了一个工厂类根据该学生得到的不同成绩,生成该学生不同情绪的反应类。很多人觉得我直接根据值new Student()类不就好了,是的啊这样的逻辑没有问题,但是如果创建Student实例时所做的初始化工作不是象赋值这样简单的事,我们都知道我们苦逼的分数都是由我们老师打得,是经历了一个很长的阅卷过程,转化起来可能是很长一段代码,如果也写入构造函数中,那我们的代码很难看了(就需要Refactor重整)。
      为什么说代码很难看,大部分人刚开始可能没有这种感觉,我刚开始也是这么觉得。但是我们分析一下,初始化工作如果是很长一段代码,说明要做的工作很多,将很多工作装入一个方法中,相当于将很多鸡蛋放在一个篮子里,是很危险的,这也是有背于Java面向对象的原则,面向对象的封装(Encapsulation)和分派(Delegation)告诉我们,尽量将长的代码分派“切割”成每段,将每段再“封装”起来(减少段和段之间偶合联系性),这样就会将风险分散,以后如果需要修改,只要更改每段,不会再发生牵一动百的事情。
     在本例中,首先,我们需要将创建实例的工作与使用实例的工作分开, 也就是说,让创建实例所需要的大量初始化工作从Student的构造函数中分离出去。
      在构建工厂类的时候呢,除了上述的工厂类Factory,还有抽象类Student
public abstract class Student {

}
    Student的子类laugh,cry类继承抽象类Student共同组成。

      下面我们再来介绍一下抽象工厂模型,这两个模式区别在于需要创建对象的复杂程度上。如果我们创建对象的方法变得复杂了,如上面工厂方法中是创建一个对象Student_test,如果学生还有普通不考试的状态Student_normal,这怎么办呢!我们继续上面的比方,一个家比喻成一个工厂,他们家有两个小孩,两个小孩还是都要去考试吧,都会有考试成绩吧,但虽然是一个爸妈生的,对于分数的表现也是不一样的吧。按照上述场景,我们在写一个抽象工厂模型。

public abstract class Factory{
	
public abstract Student_normal creator();

public abstract Student_test creator(String name);

}
public class AAAAAAFactory extends Factory{
	
public Student_normal creator(){ 
	......... 
	return new StudentA 
			}
public Student_test creator(String name){
	.........
	return new StudentA_laugh|cry  
			}
}
public class BombFactory extends Factory{
	
	public Student_normal creator(){
		...... 
		return new StudentB
				}
	public Student_test creator(String name){
		...... 
		return new StudentB_laugh|cry 
				}
	}
}

       从上述代码分析,我们总共有两个抽象的creator类Student_normal和Student_test类,代表平时学生的两种状态,考试和不考试的状态,而每一个抽象类模型下面又有刚说的那两孩子,Student_normal类下面StudentA、StudentB,以此类推。那么我们为什么不直接建两个工厂就好了啊,因为他们是彼此有链接,有关系的,,我们将共同部分封装在抽象类中,不同部分使用子类实现。

     抽象工厂模型相比普通工厂模型而言就多了一类角色[抽象工厂类],需要普通工厂类继承抽象工厂类来实现,抽象工厂类封装了生产商品共用的方法,普通工厂类则专门负责其单一的一类具体产品的生产。


     

    


安卓手机工厂模式跟工程模式有什不同?

工程模式是用来升级系统,更改系统关键参数用的。
工厂模式是用来reboot的。(跟恢复出厂设置差不多)
 
安卓手机工厂模式

恢复出产?你的系统多少?进设置,找到重置这个选项,里面有,如果没有重置这个选项,就找隐私权这个选项。可以恢复出产。你说的工厂模式是什么啊?工程模式?还是挖煤模式?
 

http://www.bkjia.com/Androidjc/864131.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/864131.htmlTechArticleAndroid开发之工厂模式初探,android工厂初探 工厂模式(Factory)是比较常见的一种模式我觉得也是一种非常容易理解的一种模式,举个简单的...

本文源自: 环亚娱乐

IT技术新闻
联系我们