欧美日韩激情_美女国产一区_国产精品久久久久影院日本_69xxx在线

java簡單工廠模式代碼 java簡單工廠模式及代碼

java工廠類怎么實現

工廠方法模式分為三種:

成都創新互聯專注于伊吾網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供伊吾營銷型網站建設,伊吾網站制作、伊吾網頁設計、伊吾網站官網定制、微信小程序開發服務,打造伊吾網絡公司原創品牌,更為您提供伊吾網站排名全網營銷落地服務。

1、普通工廠模式,就是建立一個工廠類,對實現了同一接口的一些類進行實例的創建

2、多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字符串出錯,則不能正確創建對象,而多個工廠方法模式是提供多個工廠方法,分別創建對象。

3、靜態工廠方法模式,將上面的多個工廠方法模式里的方法置為靜態的,不需要創建實例,直接調用即可。

具體代碼請參考:java設計模式? ?第三大節

如果對您有幫助,請及時采納謝謝

寫一個抽象工廠模式 java實例 出來

工廠模式java實例如下:

public interface Work {

void doWork();

}

ConcreteProduct

public class StudentWork implements Work {

public void doWork() {

? ?System.out.println("學生做作業!");

}

}

public class TeacherWork implements Work {

public void doWork() {

? ?System.out.println("老師審批作業!");

}

}

生產者

public interface IWorkFactory {

Work getWork();

}

ConcreteCreator

public class StudentWorkFactory implements IWorkFactory {

public Work getWork() {

? ?return new StudentWork();

}

}

public class TeacherWorkFactory implements IWorkFactory {

public Work getWork() {

? ?return new TeacherWork();

}

}

Test

public class Test {

public static void main(String[] args) {

? ?IWorkFactory studentWorkFactory = new StudentWorkFactory();

? ?studentWorkFactory.getWork().doWork();

? ?

? ?IWorkFactory teacherWorkFactory = new TeacherWorkFactory();

? ?teacherWorkFactory.getWork().doWork();

}

}

字符串反轉如下:

public String getReverseStr(String str)

{

String reverseStr = "";

if (null != str !str.equals(""))

{

? for (int i = 1 ; i =str.length(); i++){

? ? ? ??reverseStr += str.charAt(str.length() - i);

? ? ? ? // 依次按與原字符串相反的順序拼裝字符串,內部會自動進行類型轉換

? ? ? ? //str.length() - i剛好是str的下標,因為i是從1開始

? }

}

return reverseStr;

}

冒泡排序算法,從小到大

public int[] sortArr(int[] targetArr){

? ? ?//小到大的排序

? ? ? ?int temp = 0;

? ? ? ?for(int i = 0;itargetArr.length;i++){

? ? ? ? ? ?for(int j = i;jtargetArr.length;j++){

? ? ? ? ? ? ? ?if(targetArr[i]targetArr[j]){

? ? ? ? ? ? ? ? ? ?temp = targetArr[i];

? ? ? ? ? ? ? ? ? ?targetArr[i] = targetArr[j];

? ? ? ? ? ? ? ? ? ?targetArr[j] = temp;

? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ?}

? ? return?targetArr;

}

Java的幾個工廠方法解析

Java工廠模式可分為三種:

1.靜態工廠模式

2.工廠方法模式

3.抽象工廠模式

一、靜態工廠模式:用靜態的方法實現,其創建的對象具有一定的特性

舉例如下:

Vehicle類:

public abstract class Vehicle

{

private String name;

public Vehicle (){

super();

}

public Vehicle (String name){

super();

this.name=name;

}

public abstract void run();

public String getName(){

return name;

}

public void setName(String name){

this.name=name;

}

}

Bus類:

public class Bus extends Vehicle

{

private String name;

public Bus(){}

public Bus(String name){

super(name);

}

@Override

public abstract void run(){

System.out.println("Bus is running");

}

}

Car類:

public class Car extends Vehicle

{

private String name;

public Car(){}

public Car(String name){

super(name);

}

@Override

public abstract void run(){

System.out.println("Car is running");

}

}

靜態工廠類:

(靜態工廠創建一個對象,

靜態工廠創建的對象一般都有一個共同的特性,

繼承自某一個類,

或者引用一個接口)

public class StaticFactory{

public static Object getInstance(String className){

Object instance=null;

try{

Class c=Class.forName(className);

instance=c.newInstance();

}catch(Exception e){}

return instance;

}

public static Object getInstance(String className,Object ...args){

Class c=null;

try{

c=Class.forName(className);

}catch(Exception e){}

Constructor[] cons=c.getConstructors();

Object instance=null;

for(Constructor con:cons){

Class?[] cs=con.getParmeterTypes();

if(cs.length0){

boolean isConstructor=true;

for(int i=0;ics.length;i++){

Class t=cs[i];

if(!t.isInstance(args[i])){

isConstructor=false;

}

}

if(isConstructor){

try{

instance=con.newInstance(args);

break;

}catch(Exception e){}

}else{

continue;

}

}

}

return instance;

}

}

二、工廠方法模式:主要是對各類東西分類生產,但分類生產的對象仍然具有某一特性。

如果說靜態工廠是一個綜合的交通工具建造工廠,

那么工廠方法模式就是具體分工,分成Bus與Car的工廠,

各自生產各自的產品,但是造出來的還是交通工具。

交通工具制造接口:

public interface VehicleMake{

/**制造交通工具**/

public Vehicle make();

}

Bus制造類:

public class BusMake implements VehicleMake{

@Override

public Vehicle make(){

Vehicle bus=new Bus();

System.out.println("Bus工廠制造了一輛Bus");

return bus;

}

}

Car制造類:

public class CarMake implements VehicleMake{

@Override

public Vehicle make(){

Vehicle car=new Car();

System.out.println("Car工廠制造了一輛Car");

return car;

}

}

三、抽象工廠模式:抽象工廠生產的對象可能是沒有共同特性的。比如,一個制造工廠BusMake不僅能制造Bus還能生產輪胎wheel等配件,Bus是交通工具,wheel是配件(代碼中有部分類沒具體寫出來只給了類名)

總工廠(抽象工廠總接口):

public interface WheelVehicleMake extends VehicleMake{

/**制造輪胎**/

public Wheel makeWheel();

}

輪子BusMake:

public class WheelBusMake implements WheelVehicleMake{

@Override

public Vehicle make(){

Vehicle bus=new Bus();

System.out.println("WheelBusMake生產了一輛Bus");

return bus;

}

@Override

public Wheel makeWheel(){

Wheel busWheel=new BusWheel();

System.out.println("WheelBusMake生產了一個Bus輪子");

return busWheel;

}

}

輪子CarMake:

public class WheelCarMake implements WheelVehicleMake{

@Override

public Vehicle make(){

Vehicle car=new Car();

System.out.println("WheelCarMake生產了一輛Car");

return car;

}

@Override

public Wheel makeWheel(){

Wheel carWheel=new CarWheel();

System.out.println("WheelCarMake生產了一個Car輪子");

return carWheel;

}

}

java與模式,這段代碼怎么反映簡單工廠模式了?

工廠模式 就是用對象不要自己new 了,要先創建其對象的工廠,DateFormat就是,getDateInstance是得到該對象的一個實例(就是得到你想要的對象),然后就可以繼續使用對象的方法做事了

求java工廠模式的一個簡單代碼例子,盡量簡單

這個應該比較簡單一點。

某系統日志記錄器要求支持多種日志記錄方式,如文件記錄、數據庫記錄等,且用戶可以根據要求動態選擇日志記錄方式。現使用工廠方法模式設計該系統,并寫出相應Java代碼。

interface Log{

public void writeLog();

}

class FileLog implements Log{

public void writeLog(){

System.out.println("文件記錄");

}

}

class DatabaseLog implements Log{

public void writeLog(){

System.out.println("數據庫記錄");

}

}

interface LogFactory{

public Log createLog();

}

class FileLogFactory implements LogFactory{

public Log createLog(){

return new FileLog();

}

}

class DatabaseLogFactory implements LogFactory{

public Log createLog(){

return new DatabaseLog();

}

}

public class Client{

public static void main(String[] args) {

try{

Log log;

LogFactory factory;

//這里可以改成使用DOM和Java反射機制讀取XML文件,獲取工廠類名

factory=new DatabaseLogFactory ();

log=factory.createLog();

log.writeLog();

}

catch(Exception e){

System.out.println(e.getMessage());

}

}

}

分享標題:java簡單工廠模式代碼 java簡單工廠模式及代碼
地址分享:http://m.kartarina.com/article32/hjigpc.html

成都網站建設公司_創新互聯,為您提供關鍵詞優化網站營銷網頁設計公司電子商務網站策劃網站設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管
欧美日韩激情_美女国产一区_国产精品久久久久影院日本_69xxx在线
主站蜘蛛池模板: 大桥久未无码吹潮在线观看| 日韩av无码中文字幕| 亚洲中文字幕无码专区| 亚洲国产精品无码久久久久久曰| 精品无码一区二区三区在线| 亚洲色av性色在线观无码| 久久久无码精品亚洲日韩按摩 | 999久久久无码国产精品| 日韩免费无码视频一区二区三区 | 一本大道无码人妻精品专区| 免费无码一区二区| 亚洲美日韩Av中文字幕无码久久久妻妇| 亚洲精品天堂无码中文字幕| 亚洲AV无码精品国产成人| 国产乱子伦精品免费无码专区| 久久亚洲AV永久无码精品| 无码乱人伦一区二区亚洲一| 亚洲中文无码永久免| 色综合热无码热国产| 国产AV无码专区亚洲精品| 亚洲性无码AV中文字幕| 久久综合一区二区无码| 久久青草亚洲AV无码麻豆| 人妻av中文字幕无码专区| 亚洲自偷自偷偷色无码中文| av潮喷大喷水系列无码| 中文无码日韩欧免费视频| 一区二区三区无码被窝影院| 成人无码一区二区三区| 无码乱码av天堂一区二区| 中文字幕人妻三级中文无码视频| 免费A级毛片无码A∨免费| 亚洲精品一级无码鲁丝片| 一本天堂ⅴ无码亚洲道久久| 亚洲日韩精品无码专区网址| 国产成人无码网站| 亚洲a∨无码一区二区| 久久国产亚洲精品无码| 中文字幕无码第1页| 无码专区国产无套粉嫩白浆内射| 亚洲人av高清无码|