你熟悉的设计模式有哪些?写出单例模式的实现代码

如题所述

23个设计模式:

根据目的设计模式可以分为创造模式,结构模式和行为模式,创建模式用于处理对象的创建。结构模式用于处理类或对象的组合。

行为模式用于描述类或对象如何交互以及如何分配职责,创建模式用于处理对象的创建。主要包括以下五种设计模式:

工厂方法模式()

抽象工厂模式(AbstractFactoryPattern)

建造者模式(BuilderPattern)

原型模式(PrototypePattern)

单例模式(SingletonPattern)

结构模式用于处理类或对象的组合,包括以下七个设计模式:

适配器模式(AdapterPattern)

桥接模式(BridgePattern)

组合模式(CompositePattern)

装饰者模式(DecoratorPattern)

外观模式(FacadePattern)

享元模式(FlyweightPattern)

代理模式(ProxyPattern)

行为模式描述类或对象如何交互以及它们如何分配职责。它由以下11种设计模式组成:

责任链模式(Chain的ResponsibilityPattern)

命令模式(CommandPattern)

解释器模式(InterpreterPattern)

迭代器模式(IteratorPattern)

中介者模式(MediatorPattern)

备忘录模式(MementoPattern)

观察者模式(ObserverPattern)

状态模式(StatePattern)

策略模式(StrategyPattern)

模板方法模式(TemplateMethodPattern)

访问者模式(VisitorPattern)

单例模式实现1:

公共类Singleton{

类共享实例对象

私有静态单例;单例=零;

//私有构造函数

私有Singleton(){

系统。出去了。这是单例!!);

//获取单例方法

公共同步静态单例getInstance(){

//确定共享对象是否为空,如何空一个新对象

If(singleton==null){

singleton=newsingleton();

返回单例。

单例模式实现2:

公共类Singleton{

类共享实例对象实例化

PrivatestaticSingletonSingleton=newSingleton();

//私有构造函数

私有Singleton(){

系统:出去了,这是单例!!);

//获取单例方法

公共静态单例getInstance(){

直接返回共享对象

返回单例。

扩展资料:

注意事项:

设计模式主要分三个类型:创建型和行为型。

Singleton:确保一个类只有一个实例,并为其提供一个全局访问点

AbstractFactory:提供一个接口,用于创建一系列相关或相互依赖的对象,而无需指定它们的具体类。

FactoryMethod:定义一个用于创建对象的接口,并让子类决定实例化哪个类。工厂方法将类的实例化延迟到子类。

Builder:将复杂对象的构造与其表示分离,使相同的构造过程可以创建不同的表示。

Prototype:指定要使用Prototype实例创建的对象的类型,并复制该原型来创建一个新对象。

Composite:将对象组合成树状结构,以表示整体各部分之间的关系。组合使用户一致地使用单个对象和组合对象。

Facade:为子系统fa中的一组接口提供一致的接口。Ade提供了一个高级接口,使子系统更易于使用。

Proxy:为其他对象提供一个代理,以控制对该对象的访问

Adapter:将一个接口类转换为客户想要的另一个接口类。适配器模式使那些由于接口不兼容而无法一起工作的类一起工作。

Decrator:式比子类化更灵活,可以为对象动态添加一些额外的职责。

Bridge:模式将抽象部分与其实现部分分离,以便它们可以独立地更改。

Flyweight:享元模式

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-05-19
一共23种设计模式!

引用《软件秘笈-设计模式那点事》书籍:

按照目的来分,设计模式可以分为创建型模式、结构型模式和行为型模式。
创建型模式用来处理对象的创建过程;结构型模式用来处理类或者对象的组合;行为型模式用来对类或对象怎样交互和怎样分配职责进行描述。

创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:
 工厂方法模式(Factory Method Pattern)
 抽象工厂模式(Abstract Factory Pattern)
 建造者模式(Builder Pattern)
 原型模式(Prototype Pattern)
 单例模式(Singleton Pattern)

结构型模式用来处理类或者对象的组合,主要包含以下7种设计模式:
 适配器模式(Adapter Pattern)
 桥接模式(Bridge Pattern)
 组合模式(Composite Pattern)
 装饰者模式(Decorator Pattern)
 外观模式(Facade Pattern)
 享元模式(Flyweight Pattern)
 代理模式(Proxy Pattern)

行为型模式用来对类或对象怎样交互和怎样分配职责进行描述,主要包含以下11种设计模式:
 责任链模式(Chain of Responsibility Pattern)
 命令模式(Command Pattern)
 解释器模式(Interpreter Pattern)
 迭代器模式(Iterator Pattern)
 中介者模式(Mediator Pattern)
 备忘录模式(Memento Pattern)
 观察者模式(Observer Pattern)
 状态模式(State Pattern)
 策略模式(Strategy Pattern)
 模板方法模式(Template Method Pattern)
 访问者模式(Visitor Pattern)

单例模式实现1:
public class Singleton {
// 类共享实例对象
private static Singleton singleton = null;
// 私有构造方法
private Singleton() {
System.out.println("-- this is Singleton!!!");
}
// 获得单例方法
public synchronized static Singleton getInstance() {
// 判断 共享对象是否为null ,如何为null则new一个新对象
if (singleton == null) {
singleton = new Singleton();
}
return singleton;
}
}

单例模式实现2:
public class Singleton {
// 类共享实例对象 实例化
private static Singleton singleton = new Singleton();
// 私有构造方法
private Singleton() {
System.out.println("-- this is Singleton!!!");
}
// 获得单例方法
public static Singleton getInstance() {
// 直接返回共享对象
return singleton;
}
}本回答被网友采纳
第2个回答  2012-01-18
单例模式 <?php class Example { // 保存类实例在此属性中 private staticExample类中的普通方法 public function bark() { echo 'Woof!'; } //
相似回答