之前看的一些設計模式

2021-06-29 12:09:00 字數 1446 閱讀 7382

工廠方法是選擇單個產品的實現,雖然乙個類裡面可以有多個工廠方法,但是這些方法之間一般是沒有聯絡的,即使看起來像有聯絡。類似於控制反轉或依賴注入。

本質是延遲到子類來選擇實現。

package com.guo.task;

/**

* 工廠方法,建立c1,類似於從子類注入進來的途徑

* @author

guo

*/ public

abstract

class a1 

塊中的初始化器)初始化資料時

2 訪問

final

欄位時

3 在建立執行緒之前建立物件時

4 執行緒可以看見他將要處理的物件時

下面**的解決多執行緒問題:這種可行的方式就是採取類級內部類,在這個類級內部類裡面去建立物件例項。這樣一來,只要不是用到這個類級內部類,那就不會建立物件例項,從而同時實現延遲載入和執行緒安全。

package com.guo.task;

/**

* 安全的單例模式,解決的多執行緒問題

* @author

guo

*/ public

class

singleton

public

static

singleton getinstance()catch(exception e)catch(exception e){

e.printstacktrace();

return obj;

生成器模式的重心還是在於分離整體構建演算法和部件構造。

package com.guo.task;

/**

* 生成器模式

* @author

guo

*/ public

inte***ce builder{

public

void buildpart();

public

inte***ce product{

//定義產品的操作

public

class concreatebuilder implements builder{

private product resultproduct;

//獲取最後的生成物件

public product getresult(){

return

resultproduct;

public

void buildpart(){

public

class director{

private builder builder;

public director(builder builder){

this.builder=builder;

public

void construct(){

builder.buildpart();

一些設計模式的例項

1.單例模式 class msginit str var singlecase function instance.init text return instance m1和m2顯示的是在同乙個盒子裡 var m1 singlecase hello var m2 singlecase world c...

設計模式 一些概念

為乙個相關或相依賴的物件家族提供統一的建立介面,並無需指定實體類。剛才是設計模式藝術中摘要中為抽象工廠模式所定義的問題 每個模式都描述著一種在我們的環境中一遍又一遍地出現的問題,並描述了對該問題的核心解決方案。以此方式你可以使用該方案上百萬次,而不需要重複的做同樣的事情 乙個設計模式的核心 命名,問...

ACM 之前的一些總結

對於之前的一些題目的總結。編譯的時候加上 ddebug選項就可以控制freopen c include include include int main 使用const好處在於,可以確定變數的型別,而不是單純的一段 該程式是乙個死迴圈 i不可能直接 10,最好的方法是fabs i 10 1e 5 c...