Fabrika Yöntem Önerileri

0 Cevap php

Php 5.2 kullanarak, kontrolöre bir hizmet dönmek için bir fabrika kullanmaya çalışıyorum. Benim isteği uri biçimi www.mydomain.com/service/method/param1/param2/etc olacaktır. Benim denetleyici sonra uri gönderilen belirteci kullanarak bir hizmet fabrika çağırır. Gördüğüm kadarıyla, benim fabrika ile gidebiliriz iki ana yolları vardır.

Tek yöntemi:

class ServiceFactory { 
    public static function getInstance($token) { 
        switch($token) { 
            case 'location':
                return new StaticPageTemplateService('location');
                break;
            case 'product':
                return new DynamicPageTemplateService('product');
                break;
            case 'user'
                return new UserService();
                break;
            default:
                return new StaticPageTemplateService($token);
         }
    }
}

ya da birden çok yöntem:

class ServiceFactory { 
    public static function getLocationService() { 
        return new StaticPageTemplateService('location');
    }
    public static function getProductService() { 
        return new DynamicPageTemplateService('product');
    }
    public static function getUserService() { 
        return new UserService();
    }
    public static function getDefaultService($token) { 
        return new StaticPageTemplateService($token);
    }
}

Yani, bu verilen, ben o belirteci (örneğin, StaticPageTemplateService ve DynamicPageTemplateService) muhtemelen vb şablonları, etki alanı nesneleri kapmak için sadece bu gibi başka bir fabrika yöntemini uygulayacak Ve bazı olduğunu geçecek olan genel hizmetlerinin bir avuç olacak Bu belirteç 1:1 olması ve yeniden olmayacak belirli hizmetleri (örneğin, UserService) olacaktır. Yani, bu hizmetlerin küçük bir miktar için bir ok yaklaşım (eğer değilse önerilerinizi verin) gibi görünüyor. Ama ne zaman ve siteme büyür aşkın, ben olanakları 100'ler ile sonuna kadar zaman hakkında. Bu artık iyi bir yaklaşım gibi görünüyor. Ben sadece yol kapalı ile başlamak veya daha uygun olacağını başka bir tasarım modeli var muyum? Teşekkürler.

GÜNCELLEME: JSprang @ - belirteç aslında mydomain.com / konumu gibi uri gönderilir loction özgü ve mydomain.com / haber servis habere özgü bir hizmet isterim isterim. Şimdi, bu bir sürü için, hizmet genel olacaktır. Örneğin, sayfaların bir çok belirteç hizmetine geçirilen olduğu bir StaticTemplatePageService arayacak. Sırayla Bu hizmet "konumu" şablon veya "bağlantıları" şablonu kapmak ve sadece geri dışarı tükürmek. Bazıları "haber" gibi, belirteç geçti alır hangi DynamicTemplatePageService ihtiyacınız olacak ve bu hizmet, bir NewsDomainObject kapmak sunmak için nasıl belirlemek ve bu geri tükürmek olacaktır. "Müşteri" gibi Diğerleri, vb Giriş, Çık, gibi yöntemler Yani temelde, belirteç gerekli olan hizmet belirlemek için kullanılır olacak ve genel hizmet ise, bu simge olacak olacak olan bir UserService özgü olacak bu servise geçti. Belki belirteci doğru terminoloji değil ama amacınız olsun umuyoruz.

Ben bu yüzden kolayca benim ihtiyaçlarını değiştirmek durumunda ihtiyacımız olan Hizmet takas olabilir fabrika kullanmak istedi. Ben sadece merak olduğunu sitesi fabrika yerine şişirilmiş olacağını (sayfaları ve işlevsellik hem de) büyüdükçe sonra. Ama ben sadece uzak (Stephen çözüm gibi) bir dizi eşleştirmeleri depolama alamayan gibi hissetmeye başlıyorum. Bu sadece benim için OOP gelmiyor ve ben daha zarif bir şey bulmak umuduyla edildi.

0 Cevap