我了解Gang of Four及其部分模式,例如Façade,Factory,Singleton以及其他一些模式。
此外,碰巧我看到了多种我不知道的模式,也没有看到它们的好处或目的。
我想了解你所知道的设计模式。非常感谢您提供一个代码示例来解释其使用,以及何时将其用于另一种模式是准确的。
请注意,每个答案只有一个模式,每个模式只有一个例子。
查看您想要分享的模式是否已经讨论过。如果没有,请随时与社区分享! =)
答案 0 :(得分:2)
答案 1 :(得分:2)
定义:如果系统只需要一个类的一个实例,并且该实例需要在系统的许多不同部分中可访问,则可以通过使该类成为单例来控制实例化和访问
示例:使用NHibernate时,一个具体示例是ISessionFactory
API。由于内存中的负载ISessionFactory
需要实例化,因为它涉及所有对象关系映射和数据库连接一次性加载到内存中,建议只创建一个实例,并创建使用ISession
API的唯一实例的ISessionFactory
API实例,即 Singleton Pattern 。
using NHibernate;
internal class NhConnectionFactory {
private static readonly ISessionFactory _sessionFactory = config.BuildSessionFactory();
internal NhSystemFactory() {
}
internal ISession OpenSession(string connectionString) {
return _sessionFactory.OpenSession();
}
// Other methods here...
}
public static class NhSystemFacade {
private static readonly NhConnectionFactory _nhConnectionFactory = new NhConnectionFactory();
public static string DefaultConnectionString {
get {
return Properties.Settings.Default.DefaultConnectionString;
}
}
public static ISession OpenSession() {
return _nhConnectionFactory.OpenSession(DefaultConnectionString);
}
}
<强>链接:强>
答案 2 :(得分:1)
如果在运行应用程序期间可能无法使用某些对象,则非常有用。因此,如果不需要则节省内存,因为只有在需要时才会创建对象。
答案 3 :(得分:1)