扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
设计模式:界面设计和代码编辑
成都创新互联公司于2013年成立,先为清水等服务建站,清水等地企业,进行企业商务咨询服务。为清水企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
运行模式:运行应用程序
中断模式:暂时中断运行,调试程序
你只从使用者的角度去考虑,当然觉得没有必要。
如果是类的创建者呢? 创建一个类的时候如果不想被继承(因为天气不好,心情不好,打牌输钱了等等原因),这时候这个修饰符就有用了。
从面向对象设计原则上来看,使用单例模式是最佳的实现方式。由于早期设计的遗漏等问题,会导致对项目中进行单例重构十分麻烦。
出于这种情况,最合适的方式建方你还是使用类似的单例模式,实例化对象本来就应该由类自象功能实现。不应该在外部实现。目前的建方是,设计一个单例模式的接口,及接口方法。然后让窗体类去继承。缺点是由于所有的窗体可能构造函数均为公开,不能做到具体的控制。虽然能解决不会遗漏哪个窗体未处理,但对于诸多窗体的修改仍然不是解决之道。
项目工期紧时,可以考虑使用外部实现。外部实现的原理就是在打开窗体时,使用一个函数进行打开,不要直接使用窗体的函数打开,当然也不是指每个窗体中去加一个成员方法。而是新建一个类。该类传入一个窗体类型,然后在程序域中查询该类是否被实现化。在一个appdomain中,所有的实例窗体都会出现在这里(模态除话框也在)。通过appdoamin可以查询到所有实例化后的窗体,那么利用查询出的所有窗体的运行态类型(用getType方法获得),与传入的类型进行对比,如果有存在,则直接返回即可,若不存在,则进行初始化。
虽然这样参解决当前的问题,但是这毕竟不是长久之计,也就是我们常说的技术债务,客户做完验证,在正式上线前使用singleton才是正道。总之这个债务是迟早要还的,至于在什么时间是由project manager自行决定。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流